面对 大数据库文件(一般50M以上),使用Navicat导入的时候容易出现 [ERR]2006等报错问题,此文提供了几种办法,包括修改MySQL的配置参数在网上也有很多详细教程介绍过,但此文 精彩处在于前面几种都不行的情况下,通过修改 Navicat配置参数,来完成数据库大文件的导入!!!—【suy】
一、不勾选”每个运行中运行多重查询”
第一建议尝试的方法,可快速检验。
(一)成功->那就恭喜你了!!!下面的没你事了
(二)继续报错
常见下面三种情况报错,那就继续尝试 “第二、第三”的几种方法!
1)显示部分成功,有部分数据
2)显示部分成功,无数据(实际没有导入)
3)显示全部出错,无数据
二、修改MySQL配置
(一)”my.ini”配置文件修改
找到MySQL安装目录下的
1、修改max_allowed_packet参数、增加两项参数
max_allowed_packet:用来控制其通信缓冲区的最大长度。是mysql允许最大的数据包(默认大小4M),遇到大的数据库文件导入时经常报错;
wait_timeout:#服务器关闭非交互连接之前等待活动的秒数;
interactive_timeout:服务器关闭交互式连接前等待活动的秒数;
两个值可自定义,但如果设置时间太短,容易超时后出现MySQL server has gone away [ERR]2006错误;
(注意:需要 同时设置wait_timeout和interactive_timeout才会生效;如果报”too many connections”的错误,可以对这两个参数进行适当调小些。)
max_allowed_packet=2000M wait_timeout=2880000 interactive_timeout = 2880000
2、修改支持中文字符集编码
检查是否是 中文编码不支持的原因,客户端默认的字符集default-character-set参数不支持中文,可以设置成 gbk或 utf8来支持中文。
修改对应的编码
default-character-set=utf8 character-set-server=utf8
*注意:每次修改参数后,必须重新启动MySQL服务才会有效。
(二)数据库导入位置不对
需要在” 表”上右键导入。这步主要是排查数据库导入位置不对而造成的报错!
(导入图解:
三、修改Navicat的”max_allowed_packet “参数
上面都试了还不行,往往都是Navicat的配置问题。
路径:工具(T)->服务器监控->MySQL->变量->max_allowed_packet;
//英文版:Tools->Server Monitor->MySQL->Variables->max_allowed_packet;
记得先在 左侧勾选”当前数据库”,才会显示右侧 变量的属性表,再在变量里寻找 max_allowed_packet,将其值 改大,改为最大值!!!如果超过他的值,会提示并自动设为最大值。
这时候,一般勾选” 每个运行中运行多重查询“也能成功导入数据库,如果不行就去掉勾选。
导入成功后,接着在 表上右键再 刷新下数据库。
总结
纸上得来终觉浅,绝知此事要躬行—陆游。
名称时间最后编辑日期:2020 年 12 月 03 日
Original: https://www.cnblogs.com/ndash/p/14082008.html
Author: 蘇小沐
Title: 【MySQL篇】Navicat导入SQL大文件报错终极解决方案
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/606336/
转载文章受原作者版权保护。转载请注明原作者出处!