【背景】html
今天测试同窗反馈他们docker中的测试库时不时就就报“MySQL server has gone away”,事态之紧急搞的我都有点怕了(像我这么成熟稳重mysql
的DBA怎么有可能怕呢);sql
第一感受就是他们的测试环境必定是老半天都不见一个SQL来的,等到要发第二个SQL的时候不知道是过了多少年了(傲慢),因而我上去就直docker
接把timeout值给调整到了一天;让测试同步重启一下中间件再试一波,5分钟没到又报错了。数据库
【MySQL server has gone away的可能缘由有那些】测试
一、超时,超时的阀值有wait_timeout这个参数控制spa
二、链接被人为的killserver
三、发送的SQL语句过大超过max_allowed_packet的大小htm
四、其它缘由:DNS解析失败,... ...中间件
【反思】
不要过小看测试环境的数据库和SQL语句的复杂度,他们分分钟能够把一条insert搞到64M以上;上面的这个问题我是经过把 max_allowed_packet
调整到 1G 解决的。
【官方参考】
https://dev.mysql.com/doc/refman/8.0/en/gone-away.html
---