微信登录

数据库连接 - MySQL 数据库 - 连接 MySQL 数据库

数据库连接 - MySQL 数据库 - 连接 MySQL 数据库

在 Node.js 开发中,与数据库的交互是非常常见的需求,而 MySQL 作为一款广泛使用的开源关系型数据库,与 Node.js 的结合使用更是十分普遍。本文将详细介绍如何在 Node.js 中连接 MySQL 数据库,并提供相应的演示代码。

1. 安装 MySQL 驱动

在 Node.js 中连接 MySQL 数据库,我们需要使用第三方的 MySQL 驱动。其中,mysql2 是一个比较受欢迎的选择,它在性能上有一定的优势,并且支持异步操作。

首先,确保你已经安装了 Node.js 和 npm(Node 包管理器)。然后,在项目目录下打开终端,执行以下命令来安装 mysql2

  1. npm install mysql2

2. 建立基本连接

安装好 mysql2 后,我们就可以开始建立与 MySQL 数据库的连接了。以下是一个简单的示例代码:

  1. const mysql = require('mysql2');
  2. // 创建连接池
  3. const pool = mysql.createPool({
  4. host: 'localhost',
  5. user: 'your_username',
  6. password: 'your_password',
  7. database: 'your_database',
  8. waitForConnections: true,
  9. connectionLimit: 10,
  10. queueLimit: 0
  11. });
  12. // 获取一个连接
  13. pool.getConnection((err, connection) => {
  14. if (err) {
  15. console.error('Error getting connection:', err);
  16. return;
  17. }
  18. console.log('Connected to the MySQL server.');
  19. // 释放连接
  20. connection.release();
  21. });

代码解释:

  • 引入 mysql2 模块:使用 require('mysql2') 引入 mysql2 模块。
  • 创建连接池:通过 mysql.createPool() 方法创建一个连接池,连接池可以提高数据库连接的效率。在创建连接池时,需要配置数据库的相关信息,如主机名、用户名、密码和数据库名等。
  • 获取连接:使用 pool.getConnection() 方法从连接池中获取一个连接。如果获取连接过程中出现错误,会在回调函数中返回错误信息;如果成功获取连接,则会打印连接成功的信息。
  • 释放连接:使用 connection.release() 方法将连接释放回连接池,以便其他请求可以继续使用。

3. 执行 SQL 查询

连接成功后,我们可以执行各种 SQL 查询。以下是一个查询示例:

  1. const mysql = require('mysql2');
  2. const pool = mysql.createPool({
  3. host: 'localhost',
  4. user: 'your_username',
  5. password: 'your_password',
  6. database: 'your_database',
  7. waitForConnections: true,
  8. connectionLimit: 10,
  9. queueLimit: 0
  10. });
  11. // 执行查询
  12. pool.query('SELECT * FROM your_table', (err, results) => {
  13. if (err) {
  14. console.error('Error executing query:', err);
  15. return;
  16. }
  17. console.log('Query results:', results);
  18. });

代码解释:

  • 执行查询:使用 pool.query() 方法执行 SQL 查询。该方法接受两个参数,第一个参数是 SQL 查询语句,第二个参数是回调函数。
  • 处理结果:在回调函数中,通过判断 err 是否存在来检查查询是否出错。如果查询成功,results 参数将包含查询结果。

4. 使用异步/await 进行查询

除了使用回调函数,我们还可以使用 mysql2/promise 模块来实现异步/await 风格的查询,这样可以使代码更加简洁易读。以下是一个示例:

  1. const mysql = require('mysql2/promise');
  2. async function main() {
  3. try {
  4. const pool = mysql.createPool({
  5. host: 'localhost',
  6. user: 'your_username',
  7. password: 'your_password',
  8. database: 'your_database',
  9. waitForConnections: true,
  10. connectionLimit: 10,
  11. queueLimit: 0
  12. });
  13. const [rows] = await pool.execute('SELECT * FROM your_table');
  14. console.log('Query results:', rows);
  15. } catch (err) {
  16. console.error('Error:', err);
  17. }
  18. }
  19. main();

代码解释:

  • 引入 mysql2/promise 模块:使用 require('mysql2/promise') 引入支持异步/await 的 mysql2 模块。
  • 创建异步函数:使用 async/await 语法创建一个异步函数 main(),在函数内部执行数据库查询。
  • 执行查询:使用 pool.execute() 方法执行 SQL 查询,并使用 await 关键字等待查询结果。

总结

操作 代码示例 说明
安装驱动 npm install mysql2 安装 mysql2 驱动
建立连接 const pool = mysql.createPool({...}); pool.getConnection(...) 创建连接池并获取连接
执行查询(回调风格) pool.query('SELECT * FROM your_table', (err, results) => {...}) 使用回调函数执行查询
执行查询(异步/await 风格) const [rows] = await pool.execute('SELECT * FROM your_table'); 使用异步/await 执行查询

通过以上步骤,你可以在 Node.js 中轻松地连接和操作 MySQL 数据库。希望本文对你有所帮助!