MySQL在操作大批量数据时,出现MySQL server has gone away错误的解决办法。
MySQL server has gone away错误解决办法:
一、查看 max_allowed_packet 的值
命令:show global variables like ‘max_allowed_packet’;
show global variables like ‘max_allowed_packet’;
±-------------------±-----------------+
| Variable_name | Value |
±-------------------±-----------------+
| max_allowed_packet | 4194304 |
±-------------------±-----------------+
可以看到默认情况下该项的大小只有4M,接下来将该值设置成150M(10241024150)
二、设置接收包的大小
命令:
set global max_allowed_packet=157286400;
三、再次进行操作一查看是否修改成功。
通过调大该值,一般来说再次导入数据量大的sql应该就能成功了,如果任然报错,则继续再调大一些就行。
注意:通过在命令行中进行设置只对当前有效,重启mysql服务之后则恢复默认值。
永久修改大小的方法:修改配置文件,(可以在配置文件my.cnf中添加max_allowed_packet=150M即可)来达到永久有效的目的。
备注:如果我们并不是经常有这种大量数据的导入操作,推荐通过命令行使当前配置生效即可,没有必要去修改配置文件。