【Docker/MySQL】解决报错:2006-MySQLserver has gone away

【docker安装的MySQL导入sql脚本报错】

2006-MySQLserver has gone away

【原因】

导入的数据大于系统的限制的最大包大小插入的数据太大了,需要更改MySQL的默认配置

【解决方案】

找到 安装目录下的my.c n f配置文件,加入以下代码:

max_allowed_packet=500M

wait_timeout=288000

interactive_timeout = 288000

三个参数注释如下:

max_allowed_packet是mysql允许最大的数据包,也就是你发送的请求;

wait_timeout是等待的最长时间,这个值大家可以自定义,但如果时间太短的话,超时后就会现了MySQL server has gone away #2006错误。

max_allowed_packet参数的作用是,用来控制其通信缓冲区的最大长度

【步骤】

1、 找到要修改的镜像
docker ps 

2、 进入要修改的镜像
docker exec -it 容器ID /bin/bash 

3、进入要修改的文件目录
cd /etc/mysql
  
4、 安装vim
如果不安装vim在使用vim的时候会报找不到,在修改docker中mysql的配置文件,无法使用vi命令。
apt-get update
apt-get install vim
  
4、修改my.cnf配置文件
vim my.cnf
  
5、退出容器
如果要退出bash有3种操作:1)exit;2)Ctrl + d 退出并停止容器;3)Ctrl + p + q 退出并在后台运行容器;

6、重启docker容器
docker restart 容器ID(mysql也行)
 

【另:如果第4步按照失败了】

可以把配置文件先拷贝出来,修改完再导入,如:

1、拷贝出来

docker cp mysql:/etc/mysql/my.cnf /home/

2、修改my.cnf

在[mysqld]下加入这几行:

max_allowed_packet=500M

wait_timeout=288000

interactive_timeout = 288000

3、替换原来文件

docker cp /home/my.cnf mysql:/etc/mysql/

你可能感兴趣的:(docker,mysql)