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

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

2006, MySQL server has gone away

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


当前回答

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

set global max_allowed_packet=268435456;

其他回答

我找到了解决“#2006 - MySQL服务器已经消失”这个错误的方法。 解决办法就是检查两个文件

config.inc.php config.sample.inc.php

这些文件在windows下的路径为

C:\wamp64\apps\phpmyadmin4.6.4

在这两个文件中this的值:

$cfg['Servers'][$i]['host']must be 'localhost' .

我的情况是:

$cfg['Servers'][$i]['host'] = '127.0.0.1';

改为:

"$cfg['Servers'][$i]['host']" = 'localhost';

两方面都要确保:

config.inc.php Config.sample.inc.php文件必须是'localhost'。

最后一组:

$cfg['Servers'][$i]['AllowNoPassword'] = true;

然后重新启动Wampserver。


修改phpmyadmin用户名和密码

可以直接通过config.inc.php文件修改phpmyadmin的用户名和密码

这两条线

$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';

在这里你可以输入新的用户名和密码。 更改后保存文件并重新启动WAMP服务器。

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

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

对我来说是内存问题。

我甚至在拥有12个CPU核心和32 GB RAM的服务器上也遇到了同样的问题。我做了更多的研究,试图释放RAM。下面是我在Ubuntu 14.04上使用的释放RAM的命令:

sync && echo 3 | sudo tee /proc/sys/vm/drop_caches

而且,它修复了一切。我把它设置在cron下,每小时运行一次。

crontab -e

0 * * * * bash /root/ram.sh;

并且,你可以使用这个命令来检查有多少可用的空闲RAM:

free -h

你会得到这样的结果:

             total       used       free     shared    buffers     cached
Mem:           31G        12G        18G        59M       1.9G       973M
-/+ buffers/cache:       9.9G        21G
Swap:         8.0G       368M       7.6G

如果您正在使用64Bit WAMPSERVER,请搜索max_allowed_packet的多次出现,因为WAMP使用[wampmysqld64]下设置的值,而不是[mysqldump]下设置的值,这对我来说是问题,我更新了错误的一个。将其设置为max_allowed_packet = 64M。

希望这能帮助其他wampserver用户。

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