空閒時間後Node.js 中的MySQL「read ECONNRESET」錯誤
透過node-mysql 模組連接到MySQL 時,您可能會遇到以下情況:讓伺服器長時間閒置後遇到「read ECONNRESET」錯誤。此錯誤表示連線重置,可能是由於 MySQL 的空閒連線修剪機制所致。
診斷問題:
-
連線中斷:此錯誤表示 Node 與 MySQL 伺服器的連線已斷開。這可能是由 MySQL 變數“wait_timeout”設定引起的,預設為 8 小時。
-
連線池問題: Node-mysql 使用連線池來處理斷開連線並刪除不活動的連線。但是,在您進行查詢之前,它可能無法修剪斷開的連接,從而觸發錯誤。
-
外部因素:雖然「read ECONNRESET」錯誤通常與 MySQL 相關,考慮檢查是否有任何潛在的外部因素導致連接遺失。
解決錯誤:
-
增加等待超時: 將MySQL「wait_timeout」變數設定為更長的持續時間,例如28,800 秒(8 小時)。這允許更長的不活動時間而不會斷開連接。
-
使用池修剪:在程式碼中實現心跳機制以定期發送 SELECT 1;查詢資料庫,保持連線處於活動狀態。
-
強調空閒超時:使用節點池模組的idleTimeoutMillis選項自動修剪空閒連接,防止出現問題。
以上是為什麼在 MySQL 連線空閒後,我在 Node.js 中收到「read ECONNRESET」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!