昨天服务器丢失与mysql的连接了,半夜的时候,客服给我打电话,我到服务器上看日志,看到日志中显示MySql 2013错误。
2022-04-17 13:49:53 [167558.625s][ERROR] Lost connection to MySQL server during query
2022-04-17 13:49:53 [167558.625s][ERROR] Failed execute SQL command: call update_ranking(?,?,?,@code), with error: {U32: 2013}
2022-04-17 13:49:54 [167559.656s][ERROR] Got a packet bigger than 'max_allowed_packet' bytes
错误日志内显示了为什么会丢失连接,服务器用了mysql_ping 函数来保持和服务器连接的。正常情况下是不应该丢失连接。于是去查了一下这个字段的长度,表内MBLOB的最大长度是16MB,输入的内容的长度大概是1MB,服务器内设置的 max_allowed_packet 就是1MB。
问题找到了,在my.ini内设置max_allowed_packet=1024MB
然后重启服务器,问题解决。