今天在还原mysql备份文件时报错,试错过程中找到了解决办法 现分享如下
解决方案
一.修改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
2.修改支持中文字符集编码
客户端默认的字符集default-character-set参数不支持中文,可以设置成gbk或utf8来支持中文
查找这两个参数修改为utf-8(默认为空)
default-character-set=utf8
character-set-server=utf8
每次修改参数后,必须重新启动MySQL服务才会有效!
实践
第二种方案
二.修改Navicat的"max_allowed_packet"参数
在菜单栏——工具——服务器监控——MySQL——勾选左侧的mysql服务——变量——在变量里寻找max_allowed_packet,将其值改大,改为最大值!!!如果超过他的值,会提示并自动设为最大值。