Express使用mysql模块连接MySQL数据库失败
很多前端开发者会使用Express去搭建服务端,在搭建服务端的时候不可避免地会涉及连接数据库和进行数据库操作,大多数的开发者会选择使用开源的MySQL数据库。
而使用Express搭建的服务端要连接MySQL数据库首先就得安装mysql模块,利用mysql模块提供的方法连接MySQL数据库。但是在开发当中可能会遇到使用mysql模块连接数据库失败的情况。
解决Express使mysql模块连接MySQL数据库
我的解决方法是重新安装mysql2模块,打开终端在项目所在的目录下输入npm install mysql2
命令
npm install mysql2
在之前使用mysql模块连接MySQL数据库的首先使用以上命令安装mysql2的模块,然后找到连接MySQL数据库的代码将之前使用const mysql = require(‘mysql’)引入mysql模块替换成const mysql = require('mysql2')
引入mysql2模块。
//引入mysql2模块
const mysql = require('mysql2')
然后进行MySQL数据库连接,创建数据连接以及连接数据库,具体代码实现如下所示:
//引入MySQL数据库模块
const mysql = require('mysql2')
//建立连接对象
const conn = mysql.createConnection({
host:'127.0.0.1',
user:'root',
password:'123456',
database:'database',
multipleStatements: true//支持执行多条SQL
})
// 连接数据库
conn.connect(function(err) {
if(err) {
console.log("连接失败");
}else {
console.log("连接成功,当前连接线程ID是:"+conn.threadId);
}
});
module.exports = conn
在上面示例中我们使用mysql.createConnection()
方法创建数据库连接对象,传递了要连接的数据库的主机名,用户名,密码,数据库名等,然后使用conn.connect()
方法去连接数据库。
mysql2包相较于mysql模块的优势
mysql2模块是MySQL官方团队推出的新一代MySQL驱动,用于取代老版的mysql模块,提供更好的性能和更丰富的功能。
mysql2是利用JavaScript开发了一个全新的驱动mysqljs,该驱动非阻塞式异步IO,并重新实现了协议解析器。mysql2主要用于在node.js中连接数据库。相较于老版的mysql模块,maysql2具有性能更好、支持Promise和async/await、支持流式查询功能、加入TypeScript支持、更加安全的连接、更活跃的维护、简单易用以及可以向下兼容的优点。