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。