com.mysql.jdbc.PacketTooBigException解决方法
com.mysql.jdbc.PacketTooBigException解决办法
发现程序处理的时候抛出异常:
调查发现,是在执行批量操作时候数据时候max_allowed_packet参数太小的问题。
使用命里将max_allowed_packet设置为10M。
重新登录查询(必须退出重新登录),值已经改变。执行程序,问题解决。
注:此种方法只对当此设置生效,重启mysql后设置失效。如需永久生效可以修改mysql.cnf(windows下my.ini),在[mysqld]段或者mysql的server配置段进行修改。
发现程序处理的时候抛出异常:
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