我在做一个商业项目时候一台linux测试服务器出现过这个问题,这个问题很蛋疼,发生的没有任何规律性。有时候一天有时候两天,每次出问题临时解决办法就是重启Mysql。我在配置文件有时候将这个参数改的很大,但是不顶用,过一点时间项目就会提示超过1024K,就相当于被重置了。也一直在查这个问题,发现下面这个可能会靠谱点吧。
When you change the message buffer size by changing the value of the max_allowed_packet variable, you should also change the buffer size on the client side if your client program permits it.
当你改变的消息缓冲区大小的max_allowed_packet通过改变变量的值,你也应该改变在客户端内存的大小,如果你的客户端程序允许它。
如果系统内存有时候不够大,系统会自动重置该参数。
PS:之前在一台测试服务器上遇到该问题,猜测因为设置定时任务,执行时内存不够导致MySql自动重置该参数。