问题描述
在迁移数据库、备份还原或数据导入时报错:
[ERR] 1153 - Got a packet bigger than ‘max_allowed_packet’ bytes
问题原因
这个错误表示MySQL服务器接收到的数据包凌驾了设置的max_allowed_packet的大小限定。max_allowed_packet是MySQL的一个系统变量,用于定义MySQL服务端能接收的最大数据包的长度(以字节为单位)。当一个数据包的大小凌驾这个值时,MySQL会拒绝接收更多数据,并抛出错误。
查询MySQL设置的max_allowed_packet大小:
- # 查询结果的单位是字节
- show global variables like 'max_allowed_packet';
复制代码 办理方案
方案类型优点缺点暂时方案不必要重启数据库暂时修改,下次重启数据库时本次修改失效永久方案永久修改必要重启数据库 暂时方案
- # 假设临时调整max_allowed_packet的值为512MB
- set global max_allowed_packet=1024*1024*512;
复制代码 永久方案
编辑MySQL的设置文件(通常是my.cnf或my.ini),在[mysqld]部分下添加或修改max_allowed_packet的值,然后重启MySQL服务器。
- [mysqld]
- max_allowed_packet=512M
复制代码 这个设置将永久生效,直到你再次修改设置文件。
MySQL设置文件目次
Windows
Windows下怎样找到MySQL的设置文件
假如根据上面的教程发现修改设置文件不生效,可以看一下下面这篇文章,各人根据自己的情况选择。
Windows MySQL 修改设置文件 my.ini 不生效
Linux
/etc/my.cfg 大概 /etc/mysql/my.cnf
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |