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

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

2006, MySQL server has gone away

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


当前回答

此错误是由于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

其他回答

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

我在DigitalOcean Ubuntu服务器上也出现了同样的错误。

我尝试改变max_allowed_packet和wait_timeout设置,但他们都没有修复它。

原来我的服务器内存不足。我添加了一个1GB的交换文件,这解决了我的问题。

用free -h检查你的内存,看看这是否是导致它的原因。

检查连接是否存在并在需要时重新建立连接可能更容易。

有关这方面的信息,请参阅PHP:mysqli_ping。

对于Vagrant Box,请确保为该Box分配了足够的内存

config.vm.provider "virtualbox" do |vb|
  vb.memory = "4096"
end

我的问题是我为生产连接添加了SSL配置,这破坏了我的本地环境。很简单,但可能会帮助其他人意识到他们的问题。