关于'max_allowed_packet' bytes报错
最近在腾讯云服务器(1核4G内存)遇到一个怪事:
玩家回写数据库的时候偶尔会报错:
#08S01Got a packet bigger than 'max_allowed_packet' bytes
Mysql 5.1 遇到的信息包过大问题 用客户端导入数据的时候,遇到 错误代码: 1153 - Got a packet bigger than 'max_allowed_packet' bytes 终止了数据导入。
当MySQL客户端或mysqld服务器收到大于max_allowed_packet字节的信息包时,将发出“信息包过大”错误,并关闭连接。对于某些客户端,如果通信信息包过大,在执行查询期间,可能会遇到“丢失与MySQL服务器的连接”错误。
客户端和服务器均有自己的max_allowed_packet变量,因此,如你打算处理大的信息包,必须增加客户端和服务器上的该变量。一般情况下,服务器默认max-allowed-packet为1MB
我打印了一下我回写的数据byte_size(Data),也就1918个字节,1k多,怎么会bigger??
show global variables like 'max_allowed_packet';
于是按照网上说的
set global max_allowed_packet = 2*1024*1024;
并且修改了/etc/my.cnf
max_allowed_packet=16M
systemctl restart mariadb.service #重启MariaDB
然后就不会出现这问题,但是一段时间后又会偶尔出现,最近一直在查找这个问题的原因,怀疑是不是太频繁操作数据库的原因,待续。。。