MySQL 錯誤 2006:mysql 伺服器已消失
P粉786432579
2023-08-23 17:47:00
<p>我在辦公室運行伺服器來處理一些文件並將結果報告給遠端 MySQL 伺服器。 </p>
<p>檔案處理需要一些時間,並且在進程中途終止並出現以下錯誤:</p>
<pre class="brush:php;toolbar:false;">2006, MySQL server has gone away</pre>
<p>我聽說過 MySQL 設定 <strong>wait_timeout</strong>,但我是否需要在辦公室伺服器或遠端 MySQL 伺服器上更改該設定? </p>
我已經多次遇到這種情況,通常發現答案是
max_allowed_packet
。將
/etc/my.cnf
(在[mysqld]
下)中的值提高到 8 或 16M 通常可以修復該問題。 (MySql 5.7 中的預設值為4194304
,即 4MB。)注意:如果該行不存在,只需建立該行,它必須顯示為
# 下的條目[mysqld]
注意:這可以在伺服器運行時進行設置,但在 mysql 守護程序重新啟動後它將丟失。使用
SET GLOBAL max_allowed_packet=104857600
(這將其設為100MB)注意:在 Windows 上,您可能需要使用 ANSI 而不是 UTF-8 編碼來儲存 my.ini 或 my.cnf 檔案。
檢查連接是否存在並在需要時重新建立連接可能會更容易。
有關信息,請參閱 PHP:mysqli_ping。