我正在办公室运行一台服务器来处理一些文件,并将结果报告给远程MySQL服务器。
文件处理需要一段时间,进程中途死亡,并出现以下错误:
2006, MySQL server has gone away
我听说过MySQL的设置,wait_timeout,但是我需要在我办公室的服务器或远程MySQL服务器上更改它吗?
我正在办公室运行一台服务器来处理一些文件,并将结果报告给远程MySQL服务器。
文件处理需要一段时间,进程中途死亡,并出现以下错误:
2006, MySQL server has gone away
我听说过MySQL的设置,wait_timeout,但是我需要在我办公室的服务器或远程MySQL服务器上更改它吗?
当前回答
这可能是.sql文件大小的问题。
如果您正在使用xampp。打开xampp控制面板->单击MySql配置->打开my.ini。
增加数据包大小。
max_allowed_packet = 2M -> 10M
其他回答
我在DigitalOcean Ubuntu服务器上也出现了同样的错误。
我尝试改变max_allowed_packet和wait_timeout设置,但他们都没有修复它。
原来我的服务器内存不足。我添加了一个1GB的交换文件,这解决了我的问题。
用free -h检查你的内存,看看这是否是导致它的原因。
我遇到过这种情况很多次,我通常发现答案是max_allowed_packet的默认设置非常低。
在/etc/my.cnf(在[mysqld]下)中将它提升到8或16M通常可以修复它。(MySql 5.7的默认值是4194304,也就是4MB。)
[mysqld]
max_allowed_packet=16M
注意:如果该行不存在,只需创建该行
注意:这可以在服务器运行时设置。
注意:在Windows上,您可能需要使用ANSI而不是UTF-8编码保存my.ini或my.cnf文件。
使用set global max_allowed_packet=104857600。这将它设置为100MB。
此错误是由于wait_timeout过期引起的。
去mysql服务器检查它的wait_timeout:
mysql>显示wait_timeout这样的变量 Mysql > set global wait_timeout = 600 # 10分钟或最大等待时间 你需要的
http://sggoyal.blogspot.in/2015/01/2006-mysql-server-has-gone-away.html
不太可能的情况是,在客户端和服务器之间有一个防火墙,强制TCP重置到连接中。
我遇到了这个问题,我发现我们公司的F5防火墙被配置为终止空闲超过5分钟的非活动会话。
再说一次,这是不太可能发生的情况。
如果您正在使用64Bit WAMPSERVER,请搜索max_allowed_packet的多次出现,因为WAMP使用[wampmysqld64]下设置的值,而不是[mysqldump]下设置的值,这对我来说是问题,我更新了错误的一个。将其设置为max_allowed_packet = 64M。
希望这能帮助其他wampserver用户。