com.mysql.jdbc.PacketTooBigException解决办法

发现程序处理的时候抛出异常:
org.apache.ibatis.exceptions.PersistenceException: \n### Error updating database.  Cause: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (1049134 > 1048576). You can change this value on the server by setting the max_allowed_packet' variable.\n


调查发现,是在执行批量操作时候数据时候max_allowed_packet参数太小的问题。
show VARIABLES like '%max_allowed_packet%';  


使用命里将max_allowed_packet设置为10M。
set global max_allowed_packet = 10*1024*1024 


重新登录查询(必须退出重新登录),值已经改变。执行程序,问题解决。

注:此种方法只对当此设置生效,重启mysql后设置失效。如需永久生效可以修改mysql.cnf(windows下my.ini),在[mysqld]段或者mysql的server配置段进行修改。
max_allowed_packet = 20K

猜你喜欢

转载自elvis4139.iteye.com/blog/2373324
今日推荐