mysql导入SQL大文件报错解决方案

发布时间:

今天在还原mysql备份文件时报错,试错过程中找到了解决办法,现分享如下。

mysql导入SQL大文件报错解决方案

解决方案

一.修改MySQL配置

my.ini配置文件修改

一般在C:\ProgramData\MySQL\MySQL Server 5.7这个位置。

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

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

mysql导入SQL大文件报错解决方案

2.修改支持中文字符集编码 客户端默认的字符集default-character-set参数不支持中文,可以设置成gbk或utf8来支持中文

查找这两个参数修改为utf-8(默认为空) default-character-set=utf8 character-set-server=utf8

每次修改参数后,必须重新启动MySQL服务才会有效!

mysql导入SQL大文件报错解决方案

实践

mysql导入SQL大文件报错解决方案

mysql导入SQL大文件报错解决方案

第二种方案

二.修改Navicat的"max_allowed_packet"参数

在菜单栏——工具——服务器监控——MySQL——勾选左侧的mysql服务——变量——在变量里寻找max_allowed_packet,将其值改大,改为最大值!!!如果超过他的值,会提示并自动设为最大值。

mysql导入SQL大文件报错解决方案

mysql导入SQL大文件报错解决方案