本文主要是介绍mysql:1153 Got a packet bigger than ‘max_allowed_packet’ bytes的错误,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、错误问题
这个问题是在迁移数据库、备份还原或数据导入时报错:1153 Got a packet bigger than ‘max_allowed_packet’ bytes
二、出现原因
sql操作的时间过长,或者是传送的数据太大(例如使用insert ... values的语句过长, 这种情况可以通过修改max_allowed_packed的配置参数来避免,也可以在程序中将数据分批插入(使用mysql limit进行分页,循环分批处理数据));
max_allowed_packet就是指mysql服务器端和客户端在一次传送数据包的过程当中最大允许的数据包大小,而mysql的默认max_allowed_packet的值为16M,所以MySQL根据配置文件会限制Server接受的数据包大小大的插入和更新会受 max_allowed_packet 参数限制,导致大数据写入或者更新失败。
三、解决办法
修改参数:
set global max_allowed_packet=1024*1024*512;
查看参数值:
show global variables like 'max_allowed_packet';
这篇关于mysql:1153 Got a packet bigger than ‘max_allowed_packet’ bytes的错误的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!