关于'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

然后就不会出现这问题,但是一段时间后又会偶尔出现,最近一直在查找这个问题的原因,怀疑是不是太频繁操作数据库的原因,待续。。。
 
 

posted @ 2016-08-15 18:23  天之草  阅读(3626)  评论(1编辑  收藏  举报