nodejs mysql错误:连接丢失服务器关闭了连接

当我使用节点mysql时,在12:00到2:00之间出现错误,表明服务器已关闭TCP连接。这是完整的消息:

Error: Connection lost: The server closed the connection.

at Protocol.end (/opt/node-v0.10.20-linux-x64/IM/node_modules/mysql/lib/protocol/Protocol.js:73:13)

at Socket.onend (stream.js:79:10)

at Socket.EventEmitter.emit (events.js:117:20)

at _stream_readable.js:920:16

at process._tickCallback (node.js:415:13)

有解决办法。但是,以这种方式尝试后,问题也会出现。现在我不知道该怎么办。有人遇到这个问题吗?

这是我按照解决方案编写的方式:

    var handleKFDisconnect = function() {

kfdb.on('error', function(err) {

if (!err.fatal) {

return;

}

if (err.code !== 'PROTOCOL_CONNECTION_LOST') {

console.log("PROTOCOL_CONNECTION_LOST");

throw err;

}

log.error("The database is error:" + err.stack);

kfdb = mysql.createConnection(kf_config);

console.log("kfid");

console.log(kfdb);

handleKFDisconnect();

});

};

handleKFDisconnect();

回答:

尝试使用以下代码来处理服务器断开连接:

var db_config = {

host: 'localhost',

user: 'root',

password: '',

database: 'example'

};

var connection;

function handleDisconnect() {

connection = mysql.createConnection(db_config); // Recreate the connection, since

// the old one cannot be reused.

connection.connect(function(err) { // The server is either down

if(err) { // or restarting (takes a while sometimes).

console.log('error when connecting to db:', err);

setTimeout(handleDisconnect, 2000); // We introduce a delay before attempting to reconnect,

} // to avoid a hot loop, and to allow our node script to

}); // process asynchronous requests in the meantime.

// If you're also serving http, display a 503 error.

connection.on('error', function(err) {

console.log('db error', err);

if(err.code === 'PROTOCOL_CONNECTION_LOST') { // Connection to the MySQL server is usually

handleDisconnect(); // lost due to either server restart, or a

} else { // connnection idle timeout (the wait_timeout

throw err; // server variable configures this)

}

});

}

handleDisconnect();

在您的代码中,我错过了之后的部分 connection = mysql.createConnection(db_config);

以上是 nodejs mysql错误:连接丢失服务器关闭了连接 的全部内容, 来源链接: utcz.com/qa/416333.html

回到顶部