欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MySQL Packet for query is too large解决方法

程序员文章站 2024-03-12 16:50:56
...

背景:昨天上线的分配订单业务在读取订单到缓存中时,由于是批量从DB查询读取缓存,一次查询读取数据量较大( Cause: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (4935 > 2048). You can change this value on the server by setting the max_allowed_packet’ variable. ; Packet for query is too large (4935 > 2048). You can change this value on the),但是测试环境(阿里云)就没有,生产环境(华为云)出现了上面问题,可能是当时安装mysql配置不同的原因

检查过程

show VARIABLES like ‘%max_allowed_packet%’;

MySQL Packet for query is too large解决方法
MySQL Packet for query is too large解决方法

解决办法

第一种:连接mysql set global max_allowed_packet = 2010241024;

执行 set global max_allowed_packet = 20*1024*1024;

MySQL Packet for query is too large解决方法

再次执行 show VARIABLES like '%max_allowed_packet%';  并未生效

MySQL Packet for query is too large解决方法
重启 mysql 就可以了
MySQL Packet for query is too large解决方法

第二种 修改配置文件my.cnf方式

vi  /etc/mysql/my.cnf 

在[mysqId]下面添加

max_allowed_packet = 20M 

退出编辑模式,重启mysql