」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 為什麼我的MySQL連接超時在60秒後,即使設置了較高?

為什麼我的MySQL連接超時在60秒後,即使設置了較高?

發佈於2025-01-29
瀏覽:827

Why Does My MySQL Connection Timeout After 60 Seconds, Even Though `wait_timeout` Is Set Higher?

MySQL 服務器在60 秒後斷開連接

問題背景

我在執行一個以前運行良好的SQL 查詢時遇到了錯誤,該錯誤會在60 秒後超時並拋出一個錯誤。雖然查詢很慢,但作為夜間任務的一部分運行,所以這本身不是問題(因此請不要建議我對其進行優化)。

問題詳情

我通過從PHP 運行"select SLEEP(120); (見下文)來重現該錯誤。但是,從MySQL 客戶端運行相同的語句會成功(返回0)。我嘗試調整wait_timeout(設置為28800),但沒有成功。我還重啟了數據庫服務器和機器本身。

錯誤總是在60 秒後超時,這讓我認為它很可能是設置問題,而不是資源限制問題。

系統信息

  • Windows Server 2003
  • MySQL 5.1. 36-community
  • PHP 5.3

測試代碼、輸出和SHOW VARIABLES

[測試代碼、輸出和SHOW VARIABLES 的結果在此處省略]

解決方案

php 選項mysql.connect_timeout 是此問題的根源。它不僅用於連接超時,還用於等待來自服務器的第一個響應。你可以這樣增加它:

ini_set('mysql.connect_timeout', 300);
ini_set('default_socket_timeout', 300);

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3