我正在使用node.js并面临节点崩溃的问题。错误信息如下所示。
Error: Connection lost: The server closed the connection.
at Protocol.end (/var/www/versions/project/js/node_modules/mysql/lib/protocol/Protocol.js:78:13)
at Socket.<anonymous> (/var/www/versions/project/js/node_modules/mysql/lib/Connection.js:81:28)
at Socket.EventEmitter.emit (events.js:117:20)
at _stream_readable.js:919:16
at process._tickCallback (node.js:419:13)
我在节点服务器中使用mysql查询。但是在崩溃时它没有任何操作...节点会自动崩溃不同的时间段。
答案 0 :(得分:1)
这是来自nodejs mysql的错误。 &#34;连接丢失,服务器关闭连接&#34;。 mysql服务器已关闭创建的连接。
我无法确定您使用mysql连接的方式,但您没有提供示例代码段。
解决此问题的一种方法是在服务器关闭旧连接时重新创建新连接,提供示例代码
connection.on('error', function(error) {
if(erroor.code === 'PROTOCOL_CONNECTION_LOST') {
//re create the connection here again
connection = mysql.createConnection(config);
} else {
throw err;
}
});
}
答案 1 :(得分:1)
我发现只有在需要时才使用连接池来获取连接是最好的方法。
// do this once
var pool = mysql.createPool( opts );
// then, just before you need a connection do this
pool.getConnection(function(err, connection) {
if (err) throw err;
// use the connection
// don't forget to release the connection when you are done...
connection.release();
});