空閒Node.js 伺服器上的MySQL「read ECONNRESET」錯誤:原因與解決方案
簡介
簡介簡介
簡介
透過node-mysql模組將Node.js伺服器連接到MySQL在空閒時可能會面臨挑戰時間導致讀取 ECONNRESET 錯誤。
問題 1:連線中斷
是的,這個問題似乎源自於 MySQL 由於其 wait_timeout 設定而修剪空閒連線。預設的 8 小時限制在伺服器閒置幾個小時後就會過期。
問題 2:連線池限制
雖然 node-mysql 管理連線池,但它在嘗試查詢之前可能無法偵測到斷開連線。這種設計缺陷使得第一次空閒後查詢時不可避免地會出現錯誤。
問題 3:外部原因雖然讀取 ECONNRESET 錯誤很常見,但值得考慮其他潛在的問題原因。然而,進一步調查顯示 MySQL 逾時問題,而不是外在因素。
解決方法1.增加MySQL 超時:
將MySQL wait_timeout 變數設定為更大的值(例如8 小時28800 秒)以防止連接修剪。
2.使用心跳查詢:
執行定期查詢(例如 SELECT 1;)以保持連接處於活動狀態並防止修剪。
3.實作空閒連線修剪:使用節點池模組及其idleTimeoutMillis選項來自動修剪空閒連線。 結論透過解決 MySQL 逾時設定並增強 Node-MySQL 中的連接處理,開發人員可以減輕空閒時讀取 ECONNRESET 錯誤Node.js 伺服器。考慮潛在的外部原因也是謹慎的做法,但在本例中,MySQL 的 wait_timeout 似乎是罪魁禍首。以上是為什麼在連接到 MySQL 的空閒 Node.js 伺服器上出現「read ECONNRESET」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!