我使用的是一个PHP脚本,它可以长时间连续执行(一次性映射脚本),并将数据插入到MySQL数据库中。该脚本运行良好,但最终(一两分钟后)出现错误:
MySQL server has gone away我已经更改了mysql连接超时和php脚本执行超时的ini设置,但都没有更改结果。
我在过去做过一个非常类似的脚本,它在同一台服务器上运行了很长一段时间,没有遇到这个错误。
我感谢您的时间,希望您的帮助可以让我解决这个问题,以及任何其他沮丧的脚本作者在未来遇到这篇文章。
发布于 2010-08-27 17:13:33
发生这种情况的原因有很多:超时、大数据包大小等。
请查看this
发布于 2010-08-27 15:21:43
您是否在配置更改后重新启动了mysqld?你有足够的内存,这样它就不会被OOM杀手杀死吗?
等待更新:等待这里是解决方案,你需要设置“”http://dev.mysql.com/doc/refman/5.0/en/gone-away.html
发布于 2010-10-07 22:35:36
查看mysql服务器上的max_allowed_packet设置。客户端无法发送大于此大小的数据包,否则mysql服务器将关闭连接。
这只与查询字符串变得很长时的数据插入有关。这不会影响选择,因为服务器会自动放大发送的数据包。
合适的大小应该是数据的大小乘以2。该乘法是必需的,因为通常在发送数据和在SQL QUery中添加页眉和可能的页脚之前对数据进行转义。
max_allowed_packet的用途是控制服务器内存使用和限制DoS攻击。
https://stackoverflow.com/questions/3582022
复制相似问题