导入大量数据时出现MySQL Server has gone away 的解决方法
今天需要迁移一个大概26M多一点的数据库到我的台式机。于是我在其他的机器上用HeidiSQL将这个数据库导出成一个大sql文件,这个SQL文件内容是数据库结构+数据。
可能由于一次导入的数据量有点多,我在台式机上的HeidiSQL中Import这个sql文件时出现了SQL Error 2006 MySQL Server has gone away的报错。
通过Google 我找到了一个MySQL 英文论坛上找到了一个方法:在my.cnf 文件中添加 connect_timeout=120 和wait_timeout = 1800 。由于我使用的是windows版本MYSQL,我在my.ini中的[mysqld]下面添加了这两句。重启再试,还是报错。于是改大这两个值,统统改为2880000。再重启MYSQL,导入还是报错。
不过几遍下来,我发现了一个规律。每次报错的时候都是停在导入到25M的时候。看来应该不是超时的问题,我估计是文件大小被限制住了。最后几经寻找尝试,发现了max_allowed_packet这个参数。我设置 max_allowed_packet=56M 后,导入一举成功。官方的解释是适当增大 max_allowed_packet,可以使得client端到Server端传递大数据量的时候,系统能够分配更多的扩展内存来处理。56M是我自己设定的值,只提供参考价值,它的default值为1M。这个我目前没有来得及确认。
文章来源: blog.csdn.net,作者:fengda2870,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/fengda2870/article/details/6567554
- 点赞
- 收藏
- 关注作者
评论(0)