首頁 >資料庫 >mysql教程 >為什麼我的 Node.js MySQL 連線在午夜和凌晨 2 點之間失敗,如何修復?

為什麼我的 Node.js MySQL 連線在午夜和凌晨 2 點之間失敗,如何修復?

Patricia Arquette
Patricia Arquette原創
2024-12-09 18:35:15643瀏覽

Why Does My Node.js MySQL Connection Fail Between Midnight and 2 AM, and How Can I Fix It?

MySQL 連接問題:“連接丟失:服務器關閉了連接”

問題:

在MySQL 中使用Node.js時,在特定時間出現「連線遺失:伺服器關閉連線」錯誤(通常在午夜到凌晨 2 點之間)。

解決方案:

請依照下列步驟解決此問題:

var db_config = {
  host: 'localhost',
    user: 'root',
    password: '',
    database: 'example'
};

var connection;

function handleDisconnect() {
  // Recreate the connection
  connection = mysql.createConnection(db_config);

  connection.connect(function(err) {
    if(err) {
      console.log('error when connecting to db:', err);
      setTimeout(handleDisconnect, 2000); // Delay before reconnecting
    }
  });

  // Handling connection errors
  connection.on('error', function(err) {
    console.log('db error', err);
    if(err.code === 'PROTOCOL_CONNECTION_LOST') {
      handleDisconnect();
    } else {
      throw err;
    }
  });
}

handleDisconnect();

說明:

說明:

說明:說明:此程式碼片段建立與MySQL 的新連線發生斷線時的伺服器。 setTimeout 函數引入了延遲以防止熱循環,允許腳本在重新連接時處理其他請求。 錯誤處理程序配置為處理「PROTOCOL_CONNECTION_LOST」錯誤,這些錯誤通常在伺服器重新啟動期間發生。重新拋出其他錯誤,提供有關該問題的更詳細資訊。 呼叫handleDisconnect()函數來啟動錯誤處理和重新連接過程。

以上是為什麼我的 Node.js MySQL 連線在午夜和凌晨 2 點之間失敗,如何修復?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn