Docker-修改 MySQL 的 max_allowed_packet 值

发布于 2023-09-14  675 次阅读


1、max_allowed_packet 是什么

指mysql服务器端和客户端在一次传送数据包的过程当中最大允许的数据包大小。

有时候大的插入和更新会被 max_allowed_packet 参数限制掉,导致失败。如 WordPress 迁移重新导入数据库等。

2、修改 max_allowed_packet 值

进入数据库,用如下 sql 查询命令可以查询该参数目前的值:

show VARIABLES like '%max_allowed_packet%'

可以看到目前连1M都不到,所以必须要把这个值调大。

使用 Xshell 或者其他工具连接上你的服务器,用如下命令查看当前运行的容器:

docker ps

使用如下命令进入指定的容器:

#mysql18019 部分填入你自己容器的 CONTAINER ID 或者 NAMES
docker exec -it mysql8019 bash

进入容器的 /etc/mysql 目录,找到 my.cnf 配置文件进行修改:

#进入 etc 文件
cd etc
#查看当前目录文件,可以看到有个 my.cnf 文件,这就是我们要修改的文件
ls

#容器没有配置 vim 可运行如下命令安装:
yum update
yum install vim

#修改配置文件 my.cnf
vim my.cnf
#在文件中添加一行代码

max_allowed_packet = 20M 

#我设的20M,可根据需求调整,记得 :wq 保存退出

退出容器:

exit

重启mysql:

docker restart ID号

进入数据库,再次用 sql 查询命令查询该参数目前的值:

show VARIABLES like '%max_allowed_packet%'

可以看到已经修改成功,这样 max_allowed_packet 就修改成功,运行比较大的数据库文件就不会报这个错误了。

最后更新于 2023-12-09