【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/