您的位置:首页 > 数据库 > SQL

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

2011-06-25 16:58 951 查看
      今天需要迁移一个大概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。这个我目前没有来得及确认。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐