导入大量数据时出现MySQL Server has gone away 的解决方法

举报
wh_bn 发表于 2021/12/16 00:24:01 2021/12/16
【摘要】       今天需要迁移一个大概26M多一点的数据库到我的台式机。于是我在其他的机器上用HeidiSQL将这个数据库导出成一个大sql文件,这个SQL文件内容是数据库结构+数据。       可能由于一次导入的数据量有点多,我在台式机上的HeidiSQ...

      今天需要迁移一个大概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

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。