• 欢迎访问水熊虫网站,这里是我个人的工作博客,内容大多是遇到问题完善后,会在这里进行总结归纳内容! QQ群
  • 网站导航中的友情链接专栏上线,更新的都是自己这三年整理的一些东西,感兴趣可以看看!
  • 你所浪费的今天,是昨天死去的人奢望的明天。你所厌恶的现在,是未来的你回不去的曾经!

navicat还原mysql备份,部分表无数据的解决办法

MySQL WaterBear 3年前 (2017-08-17) 402次浏览 已收录 扫描二维码

mysql是使用率很高的数据库,navicat是常用的工具之一。


问题描述:

最近在使用navicat备份mysql数据后,在另外一台机器上还原的时候,碰到一个问题,在还原完成后,表都创建成功了,但是部分表的数据确没有还原。

经查看还原窗口日志:

navicat还原mysql备份,部分表无数据的解决办法

原来是出现了:2006-MySQL server has gone away的错误,问题正好出现在还原大数据量表的时侯,
应该是传送的数据太大(如使用insert ... values的语句过长) 。

这种情况可以采取以下解决办法:

  1. 修改mysql的配置文件my.ini(或my.cnf)的max_allowed_packed的配置参数。
  2. 在mysql中执行sql命令修改。
  3. 程序中将数据分批插入。

在这里主要说一下第1和2种方法:

解决办法1:
在my.ini(my.cnf)文件中添加或者修改以下变量:

max_allowed_packet = 100M(具体大小请根据需要自行调节)
max_allowed_packet 作用是用来控制其通信缓冲区的最大长度。

解决办法2:
使用MySQL命令:

//查看当前max_allowed_packet的大小
show global variables like 'max_allowed_packet';
//修改max_allowed_packet的大小
mysql> set global max_allowed_packet=1024*1024*100;

切记:还原成功后,再改回来!!

当然也可能其它问题导致此错误,此方法不一定能解决!

转载文章来源:http://www.toutiao.com/i6454689161549971981/


WaterBear , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:navicat还原mysql备份,部分表无数据的解决办法
喜欢 (0)
[[email protected]]
分享 (0)