Mysql 在数据库切换到空闲状态后发生致命错误后获取错误协议\u排队\u
在非工作时间,DB处于空闲状态。因此,我使用以下代码片段重新连接数据Mysql 在数据库切换到空闲状态后发生致命错误后获取错误协议\u排队\u,mysql,sql,node.js,express,Mysql,Sql,Node.js,Express,在非工作时间,DB处于空闲状态。因此,我使用以下代码片段重新连接数据 var mysql = require('mysql'); var settings = require('./config.js'); var connection; function handleDisconnect() { connection = mysql.createConnection({ host: settings.dbhost, user: settings.user, pas
var mysql = require('mysql');
var settings = require('./config.js');
var connection;
function handleDisconnect() {
connection = mysql.createConnection({
host: settings.dbhost,
user: settings.user,
password: settings.password,
database: settings.database
});
connection.connect(function (err) {
if (err) {
console.log('Error when connecting to db:', err, settings.database);
setTimeout(handleDisconnect, 2000);
}
else {
console.log("Database is connected ...", settings.database);
}
});
connection.on('error', function (err) {
console.log('db error', err, settings.database);
if (err.code === 'PROTOCOL_CONNECTION_LOST') {
connection
handleDisconnect();
} else {
throw err;
}
});
}
handleDisconnect();
module.exports = connection;
执行DB查询时,我遇到以下错误:
{
"status": 500,
"Error": {
"code": "PROTOCOL_ENQUEUE_AFTER_FATAL_ERROR",
"fatal": false
}
}
关于如何解决这个问题有什么想法吗?一个可能但不完美的解决方案是使用
sql.ConnectionPool()
是的,我也面临同样的问题。与此同时,我切换到了sql.ConnectionPool(),是的,这是可能的解决方案,但我们也必须找到替代方法。