node.js服务器mysql数据库连接超时的问题
在node服务器连接数据库的时候有时候会连接超时,也就是这个错误Error: connect ETIMEDOUT.在代码的错误位置是mysql的connection.js文件的421到433行代码:
Connection.prototype._handleConnectTimeout = function() {
if (this._socket) {
this._socket.setTimeout(0);
this._socket.destroy();
}
var err = new Error('connect ETIMEDOUT');
err.errorno = 'ETIMEDOUT';
err.code = 'ETIMEDOUT';
err.syscall = 'connect';
this._handleNetworkError(err);
};
这个错误从字面上来看的话就是连接超时,然后我这边出现的错误是因为连接的数据库有问题,在创建数据库的时候要仔细对比参数是否出现问题,像我:
创建数据库连接池的时候:
pool = mysql.createPool({
host: "127.0.0.1",
user: "user",
password: "",
database: "nodejs",
port: 3306,
});
而在数据库的表头的信息是:
Source Server : localhost
Source Server Version : 50624
Source Host : localhost:3306
Source Database : nodejs
Target Server Type : MYSQL
Target Server Version : 50624
File Encoding : 65001
可以看出服务器的连接地址出现了问题,所以修改成localhost之后就连接成功啦