為什麼我的 Node.js MySQL 連線在空閒時間後會拋出'read ECONNRESET”?

DDD
發布: 2024-11-12 06:45:02
原創
162 人瀏覽過

Why Does My Node.js MySQL Connection Throw

解決Node.js 服務器空閒時間後MySQL 中的“read ECONNRESET”錯誤

問題概述

當Node.js 伺服器透過node-mysql 模組連接到MySQL 時如果長時間處於空閒狀態,第一個後續查詢通常會導致「read ECONNRESET」錯誤。此錯誤表示 Node 和 MySQL 之間的連線斷開。

問題與解答

1。連結生命週期限制?

答案: 是的,MySQL 有一個「wait_timeout」變量,可以在一定時間(預設:8 小時)後斷開空閒連線。

2.連接池的優雅斷開連接處理?

答案: Node-mysql 的連接池不會自動修剪斷開的連接。心跳或節點池的idleTimeoutMillis選項可用於維護連線可用性。

3.除了 MySQL 之外進行故障排除?

答案:雖然該錯誤通常與MySQL 相關,但建議排除其他潛在原因,例如影響MySQL 的網路問題或Node.js 程式碼

解決方案

  • 延長MySQL「wait_timeout」:增加MySQL逾時以防止連接修剪。
  • 實現心跳:使用類似「SELECT 1;」每隔一段時間保持活動連接並防止斷開連接。
  • 設定節點池的「idleTimeoutMillis」:使用節點池模組自動修剪空閒連線。

附加資訊

錯誤可能也可能由以下原因引起:

  • Node 和MySQL 伺服器之間的網路連線問題。
  • 影響 MySQL 伺服器的高負載或延遲。

以上是為什麼我的 Node.js MySQL 連線在空閒時間後會拋出'read ECONNRESET”?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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