随笔编号-09 批量导入数据(Mysql)报MySQL server has gone away 问题的解决方法
问题场景:
使用*.sql 脚本,批量导入数据到mysql实例中,使用DOS 界面导入的,期间,到最后一步 source D:\aaa.sql 回车后,系统提示 MySQL server has gone away错误;
问题分析
首先度娘:mysql出现ERROR : (2006, 'MySQL server has gone away') 的问题意思就是指client和MySQL server之间的链接断开了。
造成这样的原因一般是sql操作的时间过长,或者是传送的数据太大(例如使用insert ... values的语句过长, 这种情况可以通过修改max_allowed_packed的配置参数来避免,也可 以在程序中将数据分批插入)。
解决办法:
(之一,还有其他方面原因,本人是因为如下原因导致,改之后正常):
1 查看文件大小是否超过 max_allowed_packet
show global variables like 'max_allowed_packet';
修改参数:
set global max_allowed_packet=1024*1024*16;
在查询之:
show global variables like 'max_allowed_packet';
在重新执行DOS 插入命令,正常。
注意: 以上通过set 方式更改缓存空间。在重启SQLServer 后失效!