MySQL下max_allowed_packet参数配置

MySQL 下 max_allowed_packet 参数配置

MySQL根据配置文件限制Server接受的数据包大小,有时候插入和更新会受到 max_allowed_packet 参数限制,就会发生操作数据库失败的情况,查询也一样,如果超过了限制也会报错,比如查询结果是个非常大的数据包,就会出现以下异常:

org.b3log.latke.repository.RepositoryException: 
com.mysql.cj.jdbc.exceptions.PacketTooBigException:
 Packet for query is too large (3,333 > 1,024). 
You can change this value on the server by setting the 'max_allowed_packet' variable.

会告诉你查询数据包过大,因为MySQL默认查询数据包大小为 1024 也就是1KB
可通过以下命令查询当前设置大小:

SHOW VARIABLES LIKE '%max_allowed_packet%';

查询结果如下:

image.png

由于我的 MySQL 已经改过了此配置,所以不是 1024 了

修改配置文件

可以通过编辑 my.cnf 来修改,(Windows下是 my.ini),在 [mysqld] 配置段或者 mysql 的 server 配置段进行修改

打开此配置文件

vim /etc/mysql/my.cnf

按下 I 光标移动到指定位置,在这里加入一行

image.png

然后按下 ESC 输入 :wq 回车

然后重启 MySQL 服务即可,再次输入 SHOW VARIABLES LIKE '%max_allowed_packet%';查看是否设置成功。


如果你是在 Docker 容器内安装的 MySQL 镜像
先进入容器

docker exec -it [容器名] /bin/bash

Docker 容器内是没有 vim的,连 vi 都没有,所以需要先在容器内安装 vim

apt-get update
apt-get install vim

再开始执行上面的步骤即可,完成后将容器重启。


关注微信公众号"程序员小辉"
微信图片20190813101011.jpg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值