linux下mysql的max_allowed_packet值不生效问题.

时间:2023-01-30 05:59:38
com.mysql.jdbc.PacketTooBigException: Packet for query is too large (1115 > 1024). You can change this value on the server by setting the max_allowed_packet' variable.

4 个解决方案

#1


应该加上global,否则只修改会话自己的变量:
set global max_allowed_packet = 1024;

如果要重启MYSQL后还有效,可设置为:
可以编辑my.cnf来修改(windows下my.ini),在[mysqld]段或者mysql的server配置段进行修改
max_allowed_packet = 1024

#2


引用 1 楼 kxjrzyk 的回复:
应该加上global,否则只修改会话自己的变量:
set global max_allowed_packet = 1024;

如果要重启MYSQL后还有效,可设置为:
可以编辑my.cnf来修改(windows下my.ini),在[mysqld]段或者mysql的server配置段进行修改
max_allowed_packet = 1024

能想到的方法都试过了,查询显示是修改成功了,但是程序访问的时候还是显示为1024。

#3


看你的错误提示,并不是因为修改没成功,而是修改为1024后这个值太小了,该值默认为4MB,如果你内存比较大,可设置为16MB,如果这个值太小,数据包会受到限制,就会报错

set global max_allowed_packet = 1024*1024*16;

#4


引用 3 楼 kxjrzyk 的回复:
看你的错误提示,并不是因为修改没成功,而是修改为1024后这个值太小了,该值默认为4MB,如果你内存比较大,可设置为16MB,如果这个值太小,数据包会受到限制,就会报错

set global max_allowed_packet = 1024*1024*16;

不是这个原因,重装mysql以后就好了,估计是之前配置有错。但是现在又有个新的问题,这个值会不定时的还原为1024,又得必须去修改才能用。

#1


应该加上global,否则只修改会话自己的变量:
set global max_allowed_packet = 1024;

如果要重启MYSQL后还有效,可设置为:
可以编辑my.cnf来修改(windows下my.ini),在[mysqld]段或者mysql的server配置段进行修改
max_allowed_packet = 1024

#2


引用 1 楼 kxjrzyk 的回复:
应该加上global,否则只修改会话自己的变量:
set global max_allowed_packet = 1024;

如果要重启MYSQL后还有效,可设置为:
可以编辑my.cnf来修改(windows下my.ini),在[mysqld]段或者mysql的server配置段进行修改
max_allowed_packet = 1024

能想到的方法都试过了,查询显示是修改成功了,但是程序访问的时候还是显示为1024。

#3


看你的错误提示,并不是因为修改没成功,而是修改为1024后这个值太小了,该值默认为4MB,如果你内存比较大,可设置为16MB,如果这个值太小,数据包会受到限制,就会报错

set global max_allowed_packet = 1024*1024*16;

#4


引用 3 楼 kxjrzyk 的回复:
看你的错误提示,并不是因为修改没成功,而是修改为1024后这个值太小了,该值默认为4MB,如果你内存比较大,可设置为16MB,如果这个值太小,数据包会受到限制,就会报错

set global max_allowed_packet = 1024*1024*16;

不是这个原因,重装mysql以后就好了,估计是之前配置有错。但是现在又有个新的问题,这个值会不定时的还原为1024,又得必须去修改才能用。