在MySQL中,Client和Server通信时可接收数据包的大小是受限制的,这个限制值为max_allowed_packet,通信的最小单位就是packet,当Server接收的数据包大小超过了MySQL配置文件中max_allowed_packet的限制值时,对数据库的读写操作则会失败。

那么如何修改这个值的大小。首先,我们可以通过这个命令先查看当前max_allowed_packet值的大小:

SHOW VARIABLES LIKE '%max_allowed_packet%';

方法一:使用命令修改

可以通过命令修改max_allowed_packet的值,然后通过重启MySQL服务来使命令生效,具体方法如下:
修改值大小

set global max_allowed_packet = 1024*1024*10

重启数据库

service mysql restart

方法二:修改配置文件

通过修改MySQL的配置文件也可以修改该值:
查找配置文件的路径

mysql --help | grep my.cnf

找到配置文件后切换到该路径用vim打开,找到并直接修改其值即可:

max_allowed_packet = 10M

PS:前段时间经常遇到max_allowed_packet的值隔好几天就又被重置为1M的情况,查找了很久没有找具体的原因,谷歌和百度了不少都说是遭到黑客攻击之类的,因此按大家推荐的方法把数据库的用户和密码都做修改,修改过后这段时间也没再出现过这个问题,建议大家不要使用太简单的密码。