MySQL server has gone away 的两个最常见的可能性

背景

  今天测试同学反馈他们docker中的测试库时不时就就报“MySQL server has gone away”,事态之紧急搞的我都有点怕了(像我这么成熟稳重

  的DBA怎么有可能怕呢);

 

  第一感觉就是他们的测试环境一定是老半天都不见一个SQL来的,等到要发第二个SQL的时候不知道是过了多少年了(傲慢),于是我上去就直

  接把timeout值给调整到了一天;让测试同步重启一下中间件再试一波,5分钟没到又报错了。

 

MySQL server has gone away的可能原因有那些

  1、超时,超时的阀值有wait_timeout这个参数控制

  2、连接被人为的kill

  3、发送的SQL语句过大超过max_allowed_packet的大小

  4、其它原因:DNS解析失败,... ...

 

反思

  不要太小看测试环境的数据库和SQL语句的复杂度,他们分分钟可以把一条insert搞到64M以上;上面的这个问题我是通过把 max_allowed_packet

  调整到 1G 解决的。

 

官方参考

  https://dev.mysql.com/doc/refman/8.0/en/gone-away.html

  https://sqlpy.com

---

转载于:https://www.cnblogs.com/JiangLe/p/10330896.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值