扫码关注官方订阅号
我在办公室运行服务器来处理一些文件并将结果报告给远程 MySQL 服务器。
文件处理需要一些时间,并且进程中途终止并出现以下错误:
2006, MySQL server has gone away
我听说过 MySQL 设置 wait_timeout,但我是否需要在办公室服务器或远程 MySQL 服务器上更改该设置?
我已经多次遇到过这种情况,并且通常发现答案是 max_allowed_packet。
max_allowed_packet
将 /etc/my.cnf (在 [mysqld] 下)中的值提高到 8 或 16M 通常可以修复该问题。 (MySql 5.7 中的默认值为 4194304,即 4MB。)
/etc/my.cnf
[mysqld]
4194304
[mysqld] max_allowed_packet=16M
注意:如果该行不存在,只需创建该行,它必须显示为 [mysqld]
注意:这可以在服务器运行时进行设置,但在 mysql 守护进程重新启动后它将丢失。使用SET GLOBAL max_allowed_packet=104857600(这将其设置为100MB)
SET GLOBAL max_allowed_packet=104857600
注意:在 Windows 上,您可能需要使用 ANSI 而不是 UTF-8 编码保存 my.ini 或 my.cnf 文件。
检查连接是否存在并在需要时重新建立连接可能会更容易。
有关信息,请参阅 PHP:mysqli_ping。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
我已经多次遇到过这种情况,并且通常发现答案是
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。