首頁  >  文章  >  資料庫  >  如何修復批次操作期間的「常規錯誤:2006 MySQL 伺服器已消失」?

如何修復批次操作期間的「常規錯誤:2006 MySQL 伺服器已消失」?

Linda Hamilton
Linda Hamilton原創
2024-10-30 22:20:30124瀏覽

How to Fix the

解決「常規錯誤:2006 MySQL Server Has Gone Away」問題

執行批次操作時,例如向MySQL 資料庫插入數百筆記錄時,您可能會遇到以下問題:遇到以下錯誤:

[PDOException] SQLSTATE[HY000]: General error: 2006 MySQL server has gone away

此錯誤通常是由於逾時問題導致的,即MySQL 伺服器在一段不活動時間後會中斷連線。要解決此問題,請重點調整兩個主要設定:

1。 wait_timeout

wait_timeout 設定決定 MySQL 在終止非活動連線之前等待的持續時間(以秒為單位)。預設情況下,在共享託管環境中,此值設定為相對較低的 30 秒。

要增加 wait_timeout,請在操作開始時發出以下查詢:

SET session wait_timeout=28800;

此命令將 wait_timeout 設定為 28800 秒,約為 8 小時。

2. Interactive_timeout(可選)

在某些情況下,您可能還需要調整 Interactive_timeout 設定。此設定指定 MySQL 終止互動式連線之前的秒數。

要修改Interactive_timeout,請在調整wait_timeout 後執行以下查詢:

SET session interactive_timeout=28800;

驗證

確認設定已成功修改,您可以在變更之前和之後執行以下查詢:

<code class="php">$results = $db->query("SHOW VARIABLES LIKE '%timeout%'", TRUE);</code>

注意事項

雖然增加超時設定可以解決當前問題,但重要的是考慮以下因素:

  • 將wait_timeout 設定為非常高的值(例如8 小時)可能會導致空閒連線等待時間過長。
  • 通常建議將 wait_timeout 保持在一個範圍內合理範圍,例如300秒。

以上是如何修復批次操作期間的「常規錯誤:2006 MySQL 伺服器已消失」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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