【MySQL篇】Navicat导入SQL大文件报错终极解决方案

【MySQL篇】Navicat导入SQL大文件报错终极解决方案

面对大数据库文件(一般50M以上),使用Navicat导入的时候容易出现[ERR]2006等报错问题。此文提供了几种办法,包括修改MySQL的配置参数在网上也有很多详细教程介绍过,但此文精彩处在于前面几种都不行的情况下,通过修改Navicat配置参数,来完成数据库大文件的导入!!!—【suy】

一、不勾选“每个运行中运行多重查询”

第一建议尝试的方法,可快速检验。
在这里插入图片描述

(一)成功->那就恭喜你了!!!下面的没你事了

(二)继续报错

常见下面三种情况报错,那就继续尝试“第二、第三”的几种方法!

1)显示部分成功,有部分数据

2)显示部分成功,无数据(实际没有导入)

3)显示全部出错,无数据
在这里插入图片描述

二、修改MySQL配置

(一)“my.ini”配置文件修改

找到MySQL安装目录下的my.ini配置文件,查找修改max_allowed_packet参数,再增加wait_timeoutinteractive_timeout两项参数,详细如下。

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参数不支持中文,可以设置成gbkutf8来支持中文。
在这里插入图片描述

修改对应的编码

default-character-set=utf8 
character-set-server=utf8

*注意:每次修改参数后,必须“重启MySQL服务”才会有效。

(二)数据库导入位置不对

需要在“表”上右键导入。这步主要是排查数据库导入位置不对而造成的报错!

(导入图解:【MySQL篇】Navicat导入MySQL数据库图解教程。)

三、修改Navicat的"max_allowed_packet"参数

上面都试了还不行,往往都是Navicat的配置问题。

路径:工具(T)->服务器监控->MySQL->变量->max_allowed_packet;

//英文版:Tools->Server Monitor->MySQL->Variables->max_allowed_packet;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PPUTRwcO-1606990964764)(image-20201203105853834.png)]

记得先在左侧勾选“当前数据库”,才会显示右侧变量的属性表,再在变量里寻找max_allowed_packet,将其值改大,改为最大值!!!如果超过他的值,会提示并自动设为最大值。
在这里插入图片描述

这时候,一般勾选“每个运行中运行多重查询”也能成功导入数据库,如果不行就再去掉勾选。
在这里插入图片描述

导入成功后,接着在上右键再刷新下,数据库就出来了。
在这里插入图片描述

总结

纸上得来终觉浅,绝知此事要躬行—陆游。

名称时间
最后编辑日期:2020 年 12 月 03 日
  • 12
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DFIR蘇小沐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值