我试图将数据库从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上阅读了有关相同错误消息的其他帖子,我尝试了以下内容:
修改了my.cnf以包含:
[mysqldump的]
快速
max_allowed_packet = 64M
然后我重新启动了mysql。顺便说一句,文件大小实际上只有5.2mb
我打开了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)
但话虽如此,所有前面插入的记录看起来都是一样的......所以我也不认为这也是问题所在。
任何建议将不胜感激。
答案 0 :(得分:4)
max_allowed_packet
才能生效。由于处理转储时出现问题,因此将其设置为mysqldump将无效。