很久之前碰到的一个问题了,在此记录一下。导入mysql的一个备份文件时,控制台报出了一个非常奇怪的错误信息,如下:
Error Code: 2006 - MySQL server has gone away
从表面上看是MySql服务器已经关闭,其实不然,这是因为mysql在执行大批量sql语句时,其数据缓冲区设置的过小,从而会导致mysql自动停止对sql语句的批量执行,由此造成的一个结果就是,对于前面已经导入进来的数据,mysql并不会将它们删除,只是剩下的数据也不会再导入了。
解决的办法其实很简单,就是增加数据缓冲区的大小,具体如下:
打开mysql的配置文件my.ini,在[mysqld]标签下新增一行,然后新增一个配置参数,如图:
max_allowed_packet=20M参数值的大小根据我们的实际需要来指定。保存后,重启mysql即可。
有话要说