首頁 >資料庫 >mysql教程 >為什麼我的長時間運行的 MySQL 查詢會在 60 秒後出現「MySQL 伺服器已消失」錯誤?

為什麼我的長時間運行的 MySQL 查詢會在 60 秒後出現「MySQL 伺服器已消失」錯誤?

Susan Sarandon
Susan Sarandon原創
2024-12-20 16:03:10634瀏覽

Why Does My Long-Running MySQL Query Result in a

MySQL 伺服器已消失- 意外逾時問題

執行長時間運行的查詢(120 秒睡眠)時,使用者遇到了進程失敗並顯示錯誤訊息“MySQL 伺服器已消失”的問題。這會在 60 秒後發生。 Windows Server 2003 和 MySQL 5.1.36-community 上皆有此問題。

故障排除步驟

使用者已嘗試各種故障排除措施,包括將 wait_timeout 設定調整為28800 秒並重新啟動資料庫伺服器和電腦。儘管做出了這些努力,超時錯誤仍然存在。

可能的原因

問題似乎與設定有關,而不是資源短缺,因為超時總是發生在60秒

解決方案

問題源自於PHP選項mysql.connect_timeout。雖然其主要目的是指定連線逾時,但它還確定第一次伺服器回應所允許的時間。要解決此問題,使用者需要增加此逾時值,如下所示:

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

透過將這些值設為 300 秒(5 分鐘),系統在逾時之前等待伺服器回應的時間更長。這使得長時間運行的查詢能夠成功完成。

以上是為什麼我的長時間運行的 MySQL 查詢會在 60 秒後出現「MySQL 伺服器已消失」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn