Wintop 博客

记录日常问题分享和解决方案

批量导入数据(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 后失效!


发表评论:

Copyright Wintop.Org. All Rights Reserved.

鲁ICP备17016787号