node.js连接MySQL报错Error: read ECONNRESET
连接云端的MySQL数据库发现连接成功后,一直保持连接不使用end()等断开,发现2分钟后刷新页面重新发送查询命令会超时无效!原因暂时不清楚,不像是与MySQL连接不进行查询,云端把连接断开,因为这时间太短了!
解决办法:
创建回调,监听错误
const mysql = require('mysql')
const mysql_config = { //连接参数
host: 'http://ocalhost:3306', //mysql连接ip地址
user: 'root',
password: '123456', //mySql用户名密码
database: 'meizubase',
port: '3306', //mysql连接端口
useConnectionPooling: true
};
const conn;
function handleError () {
//创建一个mysql连接对象
conn = mysql.createConnection(mysql_config)
//连接错误,2秒重试
conn.connect(function (err) {
if (err) {
console.log('error when connecting to db:', err);
setTimeout(handleError , 2000);
}
});
//监听错误
conn.on('error', function (err) {
console.log('db error', err);
// 如果是连接断开,自动重新连接
if (err.code === 'PROTOCOL_CONNECTION_LOST') {
handleError();
} else {
throw err;
}
});
}
handleError();