Node.js MySQL:解決「連線遺失:伺服器關閉連線」錯誤
使用 Node.js 與 MySQL 資料庫建立連線時。在 Node.js 中,可能會遇到錯誤「連線遺失:伺服器關閉了連線」。此錯誤通常發生在 12:00 到 2:00 等時段,此時 TCP 連線被伺服器中斷。
解決方案1:自動重新連線處理
至自動處理此錯誤,實作以下程式碼:
var db_config = { host: 'localhost', user: 'root', password: '', database: 'example' }; var connection; function handleDisconnect() { connection = mysql.createConnection(db_config); connection.connect(function(err) { if(err) { console.log('error when connecting to db:', err); setTimeout(handleDisconnect, 2000); } }); connection.on('error', function(err) { console.log('db error', err); if(err.code === 'PROTOCOL_CONNECTION_LOST') { handleDisconnect(); } else { throw err; } }); } handleDisconnect();
在此程式碼中,與MySQL 建立連接伺服器。如果因伺服器重新啟動或空閒逾時導致連線遺失,則會呼叫handleDisconnect()函數,重新建立連線。
解決方案2:手動重新連接
在提供的程式碼中,您已經實現了部分自動重連機制,但是在連接= 行之後缺少部分mysql .createConnection(kf_config);。以下程式碼完成了實作:
connection.connect(function(err) { if (err) { console.log("Error connecting to KFC: " + err); } else { console.log("KF connected!"); } });
您也應該在連線物件上註冊一個錯誤偵聽器以自動處理連線遺失事件。例如:
connection.on('error', function(err) { if (err.code === 'PROTOCOL_CONNECTION_LOST') { console.log("KF connection lost. Reconnecting..."); handleKFDisconnect(); } else { throw err; } });
透過執行下列步驟,您可以確保 Node.js MySQL 應用程式正常處理連線遺失並自動重新建立連線。
以上是如何解決 Node.js MySQL「連線遺失:伺服器關閉連線」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!