MySQL max_allowed_packet 错误

com.mysql.jdbc.PacketTooBigException: Packet for query is too large (3158064)问题解决


在做查询,插入数据库操作时,报了以上错误,还有out of memery heap hacp ,原因是mysql的max_allowed_packet设置过小引起的,一般默认设置的是1M,自己改为20M就ok了!

mysql根据配置文件会限制server接受的数据包大小。

有时候大的插入和更新会被max_allowed_packet 参数限制掉,导致失败。

查看目前配置步骤

1、登陆mysql服务

2、show VARIABLES like '%max_allowed_packet%';

显示的结果为:


在windows系统下,mysql的安装目录下的my.ini文件中配置的也是1M



以上说明目前的配置是:1M

 
修改方法
方法1
可以编辑my.cnf来修改(windows下my.ini),在[mysqld]段或者mysql的server配置段进行修改。
max_allowed_packet = 20M
如果找不到my.cnf可以通过
mysql --help | grep my.cnf

去寻找my.cnf文件。


修改了my.ini配置文件后,重启mysql服务,不然比起作用发(所有该配置的都要重启服务),重启后在查看结果如下:



方法2

进入mysql server
在mysql 命令行中运行
set global max_allowed_packet = 2*1024*1024*10
然后关闭掉这此mysql server链接,再进入。
show VARIABLES like '%max_allowed_packet%';
查看下max_allowed_packet是否编辑成功
 

经验总结:
不管是第一种方法还是第二种方法我们都应该,在修改后关闭服务,再次启动服务,如果是第二种方法还得要注意一下,就是修改后关闭此mysql server链接,再进入。

两种方式都已测试过,没问题!!!


参考文档:
http://www.360doc.com/content/11/0214/17/4171006_93014351.shtml
http://blog.csdn.net/wpekin/article/details/5661625
相关文章
相关标签/搜索