这通常意味着MySQL服务器在尝试处理一个客户端发送的数据包时,该数据包的大小超过了服务器所配置的最大允许大小。
包大小:简单来说就是mysql把当前执行的mysql语句看作是一个包,而对这个包大小的限制即是对当前mysql语句长度的限制。默认通常为4MB或16MB,取决于MySQL的版本和配置。
查看当前值:4194304B=4194304/1024/1024=4MB
mysql> show global VARIABLES like 'max_allowed_packet';
1. 临时修改:
mysql> set global max_allowed_packet = 1024*1024*512;
2. 永久设置:修改配置文件的[mysqld]部分
Linux下:/etc/my.cnf;Windows下:my.ini
#设置mysql服务器端和客户端在一次传送数据包的过程当中最大允许的数据包大小
max_allowed_packet=32M
重新启动 mysql 服务器:service mysqld restart