本文共 1269 字,大约阅读时间需要 4 分钟。
问题:com.mysql.jdbc.PacketTooBigException: Packet for query is too large (23588610 > 20971520). You can change this value on the server by setting the max_allowed_packet’ variable.
原因: 一次性插入的数据超过了mysql 默认的server接收的数据包大小,因此需要调整mysql 默认的server接收的数据包大小。
MySQL会根据配置文件限制server接收的数据包大小
在执行比较大数据插入或者更新的时候,会根据配置文件“max_allowed_packet ”参数所限制
解决方案:
修改配置,即是扩大配置限制#show VARIABLES like '%max_allowed_packet%';mysql> show variables like '%max_allowed_packet%';+--------------------------+------------+| Variable_name | Value |+--------------------------+------------+| max_allowed_packet | 20971520 || slave_max_allowed_packet | 1073741824 |+--------------------------+------------+2 rows in set (0.00 sec)
#临时设置为40Mmysql> set global max_allowed_packet = 4*1024*1024*10;Query OK, 0 rows affected (0.00 sec)#关闭数据库连接后,重新连接数据库#查看配置是否生效mysql> show variables like '%max_allowed_packet%';+--------------------------+------------+| Variable_name | Value |+--------------------------+------------+| max_allowed_packet | 41943040 || slave_max_allowed_packet | 1073741824 |+--------------------------+------------+2 rows in set (0.00 sec)
max_allowed_packet = 40M
转载地址:http://bhfef.baihongyu.com/