07 docker实战之修改MySQL的max_allowed_packet值
1. 问题描述
研究一个开源项目,需要导入SQL脚本,估计是脚本内容较大(接近1200行SQL代码,有个表是文章内容表,数据量比较大)。
本地导入没问题,导入到服务器的mysql时报错,提示:Got a packet bigger than 'max_allowed_packet' bytes
2. 原因和解决思路
由于max_allowed_packet的值设置过小,这个参数指mysql服务器端和客户端在一次传送数据包的过程当中最大允许的数据包大小。
用如下命令可以查询该参数的值:
show VARIABLES like '%max_allowed_packet%'
结果如下:

连1M都不到,而我的SQL脚本文件就有2.4M左右,所以必须要把这个值调大。
网上有两种解决方案,一种是临时的,我试了不行;还有一种是进入mysql改配置文件,并重启mysql。
3. 过程记录
- 使用docker ps命令查看当前运行的容器

- 使用docker exec命令进入指定的容器
docker exec -it mysql8019 bash
- 进入容器的 /etc/mysql 目录,找到my.cnf配置文件进行修改

- 由于该镜像没有配置vim,不是很好编辑文件,我就又为该容器安装vim。(小插曲)
apt-get update
apt-get install vim
- 修改配置文件
vim my.cnf

加到最后,我设的20M,记得 :wq 保存退出
- 退出容器
exit
- 重启mysql
docker restart ID号
- 测试
使用命令查询如下,修改成功

执行sql文件,成功。

浙公网安备 33010602011771号