執行批次操作時,例如向MySQL 資料庫插入數百筆記錄時,您可能會遇到以下問題:遇到以下錯誤:
[PDOException] SQLSTATE[HY000]: General error: 2006 MySQL server has gone away
此錯誤通常是由於逾時問題導致的,即MySQL 伺服器在一段不活動時間後會中斷連線。要解決此問題,請重點調整兩個主要設定:
wait_timeout 設定決定 MySQL 在終止非活動連線之前等待的持續時間(以秒為單位)。預設情況下,在共享託管環境中,此值設定為相對較低的 30 秒。
要增加 wait_timeout,請在操作開始時發出以下查詢:
SET session wait_timeout=28800;
此命令將 wait_timeout 設定為 28800 秒,約為 8 小時。
在某些情況下,您可能還需要調整 Interactive_timeout 設定。此設定指定 MySQL 終止互動式連線之前的秒數。
要修改Interactive_timeout,請在調整wait_timeout 後執行以下查詢:
SET session interactive_timeout=28800;
確認設定已成功修改,您可以在變更之前和之後執行以下查詢:
<code class="php">$results = $db->query("SHOW VARIABLES LIKE '%timeout%'", TRUE);</code>
雖然增加超時設定可以解決當前問題,但重要的是考慮以下因素:
以上是如何修復批次操作期間的「常規錯誤:2006 MySQL 伺服器已消失」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!