mysql 中com.mysql.jdbc.PacketTooBigException 解决办法

解决MySQL数据包过大问题的配置修改
博客指出com.mysql.jdbc.PacketTooBigException问题,原因是一次性插入数据超MySQL默认server接收数据包大小。解决方案是修改配置扩大限制,包括查看配置、将原20M配置调整为40M,还可修改mysql配置文件使修改永久生效。

问题: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 ”参数所限制

解决方案:
修改配置,即是扩大配置限制

1.查看配置
  • 进入数据库,执行如下查询,查看MySQL配置
#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)

2、修改配置
  • 修改配置,即是扩大配置限制,将原配置20M调整为40M
#临时设置为40M
mysql> 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)
3、修改mysql配置文件,永久生效
max_allowed_packet = 40M
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值