我正在办公室运行一台服务器来处理一些文件,并将结果报告给远程MySQL服务器。

文件处理需要一段时间,进程中途死亡,并出现以下错误:

2006, MySQL server has gone away

我听说过MySQL的设置,wait_timeout,但是我需要在我办公室的服务器或远程MySQL服务器上更改它吗?


当前回答

这可能是.sql文件大小的问题。

如果您正在使用xampp。打开xampp控制面板->单击MySql配置->打开my.ini。

增加数据包大小。

max_allowed_packet = 2M -> 10M

其他回答

不太可能的情况是,在客户端和服务器之间有一个防火墙,强制TCP重置到连接中。

我遇到了这个问题,我发现我们公司的F5防火墙被配置为终止空闲超过5分钟的非活动会话。

再说一次,这是不太可能发生的情况。

如果你知道你要离线一段时间,你可以关闭连接,进行处理,重新连接并撰写报告。

我在MySQL命令行中使用了以下命令来恢复一个超过7GB的MySQL数据库,它是有效的。

set global max_allowed_packet=268435456;

我在Ubuntu桌面上的不同MySQL客户端软件中得到了2006年错误消息。原来我的JDBC驱动程序版本太旧了。

取消my.ini/my.cnf中下面的ligne的注释,这将把你的大文件分割成小部分

# binary logging format - mixed recommended
# binlog_format=mixed

TO

# binary logging format - mixed recommended
binlog_format=mixed