MySQL 连接丢失:解决“连接丢失:服务器关闭连接”错误
使用 Node.js 和 MySQL 时,您偶尔可能会遇到错误,表明服务器关闭了连接。这种情况通常发生在凌晨 12:00 至 2:00 左右,让您感到困惑。错误消息通常显示为:
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 db_config = { host: 'localhost', user: 'root', password: '', database: 'example' }; var connection; function handleDisconnect() { connection = mysql.createConnection(db_config); // Recreate the connection connection.connect(function(err) { // Attempt to connect if(err) { console.log('error when connecting to db:', err); setTimeout(handleDisconnect, 2000); // Delay reconnection attempts } }); connection.on('error', function(err) { console.log('db error', err); if(err.code === 'PROTOCOL_CONNECTION_LOST') { // Connection lost due to server restart or idle timeout handleDisconnect(); } else { throw err; } }); } handleDisconnect();
此代码执行以下操作:
通过实施此方法,可以有效处理MySQL连接丢失错误并确保无缝数据库连接在您的 Node.js 应用程序中。
以上是为什么我的 Node.js MySQL 连接在午夜左右不断掉线?的详细内容。更多信息请关注PHP中文网其他相关文章!