MySQL错误2006(HY000)第406行:MySQL服务器已经消失 - 即使在增加转储文件大小设置之后也是如此

时间:2013-01-31 15:33:52

标签: mysql

我试图将数据库从serverA移动到serverB。我使用以下命令创建了一个mysql转储:

mysqldump -u root -p -c --add-drop-table --add-locks --quick --lock-tables mydatabase > /var/log/mydatabaseJan31.sql

然后在serverB上,我尝试通过执行以下操作来导入此数据:

mysql -u root -p mydatabase < /tmp/mydatabaseJan31.sql

我在第408行收到错误&#34; ERROR 2006(HY000):MySQL服务器已经消失了#34;几乎立即。 我已经在stackoverflow上阅读了有关相同错误消息的其他帖子,我尝试了以下内容:

  1. 修改了my.cnf以包含:

    [mysqldump的]
    快速
    max_allowed_pa​​cket = 64M

  2. 然后我重新启动了mysql。顺便说一句,文件大小实际上只有5.2mb

    1. 尝试使用phpmyadmin创建转储文件。
    2. 我不认为这是一个超时问题,因为它在导入过程中死了2秒。
    3. 我打开了mysql转储文件并查看了它爆炸的行号,它是从第43行开始的大量插入语句的一部分。 我不确定它是否相关,但第406行以不完整的字符串开头:

      第402行----&gt; (341,1996,12,&#39;

      第403行----&gt;前面&#39;),(341,1996,12,&#39;内部&#39;),(341,1996,12,&#39;后&#39;) ,(341,1996,13,&#39;前部&#39),(341,1996,13,&#39;室内&#39),(341,1996,13,&#39;后部&#39; ),(341,1996,14,&#39;前部&#39)

    4. 但话虽如此,所有前面插入的记录看起来都是一样的......所以我也不认为这也是问题所在。

      任何建议将不胜感激。

1 个答案:

答案 0 :(得分:4)

需要在客户端(mysql)和服务器(mysqld)上设置

max_allowed_packet才能生效。由于处理转储时出现问题,因此将其设置为mysqldump将无效。