首頁 > 資料庫 > mysql教程 > 如何解決 Node.js MySQL「連線遺失:伺服器關閉連線」錯誤?

如何解決 Node.js MySQL「連線遺失:伺服器關閉連線」錯誤?

Mary-Kate Olsen
發布: 2024-12-13 04:42:08
原創
638 人瀏覽過

How to Resolve Node.js MySQL

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板