com.mysql.jdbc.PacketTooBigException: Packet for query is too large (1169 > 1024)

com.mysql.jdbc.PacketTooBigException: Packet for query is too large (1169 > 1024). You can change this value on the server by setting the max_allowed_packet' variable.

; SQL []; Packet for query is too large (1169 > 1024). You can change this value on the server by setting the max_allowed_packet' variable.; nested exception is com.mysql.jdbc.PacketTooBigException: Packet for query is too large (1169 > 1024). You can change this value on the server by setting the max_allowed_packet' variable.

进入到查看数据库,执行如下命令:

show VARIABLES like '%max_allowed_packet%';

太小导致出错。

在linux下,进入到mysql安装目录下:

进入到:

/usr/local/mysql,找到my.cnf,增加一行

max_allowed_packet = 20M

故障现象:数据存储的时候报ERROR: Packet for query is too large (2034> 1024). You can change this value on the server by setting the max_allowed_packet' variable.

排查过程:从报错看是 mysql的 max_allowed_packet参数值设置太少了,用show VARIABLES like '%max_allowed_packet%';查看,显示的是1024,这当然就有问题了,超过1024就存不了,于是在/etc/my.cnf文件中【mysqld]下面加上max_allowed_packet=10M,执行service mysql restart ,再用show VARIABLES like '%max_allowed_packet%'查,生效了!再观察数据存储也没问题了!以为问题就此解决,结果是第二天发现又报这个错,用show VARIABLES like '%max_allowed_packet%'查看,奇怪了,有变成1024了!好烦心!继续查资料,说是内存不足的问题,导致MySQL自动重新设置参数,于是top查看,发现 Java占了 3.2G,mysql占了600+M,总共4G,的确有可能!于是把jvm的-Xms设置为2G,再观察几天,这次真的解决了!

经验教训:不要把一台服务器的内存都用光了,要预留多点内存,另外mysql和Java程序最好分开部署。

重启mysql:

service mysql restart

然后在查询:

好了,解决了!

重启mysql语句:

一、启动方式

1、使用 service 启动:service mysqld start

2、使用 mysqld 脚本启动:/etc/inint.d/mysqld start

3、使用 safe_mysqld 启动:safe_mysqld&

二、停止

1、使用 service 启动:service mysqld stop

2、使用 mysqld 脚本启动:/etc/inint.d/mysqld stop

3、 mysqladmin shutdown 

三、重启

1、 使用 service 启动:service mysqld restart

2、使用 mysqld 脚本启动:/etc/inint.d/mysqld restart
提问 编辑摘要


如何启动/停止/重启MySQL
一、 启动方式

1、使用 service 启动:service mysqld start

2、使用 mysqld 脚本启动:/etc/inint.d/mysqld start

3、使用 safe_mysqld 启动:safe_mysqld&

二、停止

1、使用 service 启动:service mysqld stop

2、使用 mysqld 脚本启动:/etc/inint.d/mysqld stop

3、 mysqladmin shutdown

三、重启

1、使用 service 启动:service mysqld restart

2、使用 mysqld 脚本启动:/etc/inint.d/mysqld restart

猜你喜欢

转载自blog.csdn.net/qin_zhimou/article/details/83859718
今日推荐