遇到ERROR 2006 (HY000): MySQL server has gone away如何解决?


有时批量备份的数据库数据,导入本地开发环境时可能遇到如下错误

ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...

通过mysql命令和配置文件都可以查看max_allowed_packet允许的最大值
登陆MySQL后,使用如下命令查询:

mysql> show global variables like 'max_allowed_packet';

输出:

+--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 1048576 |
+--------------------+---------+
1 row in set (0.01 sec)

上限是刚好1MB,而导出数据最大是5MB。

在当前会话中可以使用如下命令修改上限:

mysql> set global max_allowed_packet=1024*1024*16;

可在不重启MySQL的情况下立即生效,但是重启后就会恢复原样。

通过修改/etc/my.cnf配置文件永久生效:

max_allowed_packet = 1M

修改为

max_allowed_packet = 16M

即可。

之后重新导入完事大吉。

Archives