為什麼在 MySQL 連線空閒後,我在 Node.js 中收到「read ECONNRESET」錯誤?

Susan Sarandon
發布: 2024-11-12 04:27:02
原創
612 人瀏覽過

Why am I getting

空閒時間後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中文網其他相關文章!

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