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中文網其他相關文章!