mysql: Got a packet bigger than 'max_allowed_packet' bytes,调节参数值比数据包大后,仍然不生效

问题:

批量更新数据库时报错

原因:

数据包大小超过了max_allowed_packet设定的阈值

问题排查过程:

  • 查看mysql的参数配置,原来是16M,改为500M,如下:

mysql> show variables like 'max_allowed_packet';
+--------------------+-----------+
| Variable_name      | Value     |
+--------------------+-----------+
| max_allowed_packet | 524288000 |
+--------------------+-----------+
1 row in set (0.01 sec)

修改为500M后,已经确定比数据包大,但日志仍然报错,奇怪,怀疑是哪里的配置出了问题。

  • 由于经过一层proxysql的代理,怀疑是代理配置有问题

proxysql参数默认配置为4M,最大为1G,https://github.com/sysown/proxysql/wiki/Global-variables#mysql-max_allowed_packet

查询proxysql的配置,一查果然有问题,才4M,如下:

mysql> show variables like '%max_allowed_packet';
+--------------------------+---------+
| Variable_name            | Value   |
+--------------------------+---------+
| mysql-max_allowed_packet | 4194304 |
+--------------------------+---------+

修改为更大值:

SET mysql-max_allowed_packet=64*1024*1024;
LOAD MYSQL VARIABLES TO RUNTIME;
SAVE MYSQL VARIABLES TO DISK;

将proxysql的配置调为64M后问题成功解决!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值