我正在办公室运行一台服务器来处理一些文件,并将结果报告给远程MySQL服务器。
文件处理需要一段时间,进程中途死亡,并出现以下错误:
2006, MySQL server has gone away
我听说过MySQL的设置,wait_timeout,但是我需要在我办公室的服务器或远程MySQL服务器上更改它吗?
我正在办公室运行一台服务器来处理一些文件,并将结果报告给远程MySQL服务器。
文件处理需要一段时间,进程中途死亡,并出现以下错误:
2006, MySQL server has gone away
我听说过MySQL的设置,wait_timeout,但是我需要在我办公室的服务器或远程MySQL服务器上更改它吗?
当前回答
如果你知道你要离线一段时间,你可以关闭连接,进行处理,重新连接并撰写报告。
其他回答
我遇到过这种情况很多次,我通常发现答案是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。
我找到了解决“#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服务器。
如果你知道你要离线一段时间,你可以关闭连接,进行处理,重新连接并撰写报告。
如果您正在使用64Bit WAMPSERVER,请搜索max_allowed_packet的多次出现,因为WAMP使用[wampmysqld64]下设置的值,而不是[mysqldump]下设置的值,这对我来说是问题,我更新了错误的一个。将其设置为max_allowed_packet = 64M。
希望这能帮助其他wampserver用户。
在我的情况下,它是低值的open_files_limit变量,这阻止了mysqld访问数据文件。
我用:
mysql> SHOW VARIABLES LIKE 'open%';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| open_files_limit | 1185 |
+------------------+-------+
1 row in set (0.00 sec)
在我将变量改为大值后,我们的服务器再次活跃起来:
[mysqld]
open_files_limit = 100000