MySQL 服務器在60 秒後斷開連接
問題背景
我在執行一個以前運行良好的SQL 查詢時遇到了錯誤,該錯誤會在60 秒後超時並拋出一個錯誤。雖然查詢很慢,但作為夜間任務的一部分運行,所以這本身不是問題(因此請不要建議我對其進行優化)。
問題詳情
我通過從PHP 運行"select SLEEP(120); (見下文)來重現該錯誤。但是,從MySQL 客戶端運行相同的語句會成功(返回0)。我嘗試調整wait_timeout(設置為28800),但沒有成功。我還重啟了數據庫服務器和機器本身。
錯誤總是在60 秒後超時,這讓我認為它很可能是設置問題,而不是資源限制問題。
系統信息
測試代碼、輸出和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