DBAtlas · 数据库运维图谱

1153: Got a packet bigger than 'max_allowed_packet' bytes(收到的数据包大于 'max_allowed_packet' 字节)

MySQL

含义

客户端或服务器尝试发送大于允许的最大数据包大小(max_allowed_packet)的数据包。通常发生在大型 BLOB/TEXT 值或非常大的批量 INSERT 中。

原因

插入非常大的 BLOB/TEXT 数据;巨大的单条 INSERT 或多行批量 INSERT;返回大结果的查询;max_allowed_packet 值过小;用 mysqldump 导入大行。

解决方法

增大 max_allowed_packet(服务器和客户端两侧):SET GLOBAL max_allowed_packet = 67108864;(64MB)然后重新连接。要永久生效,在 my.cnf 的 [mysqld] 下添加 max_allowed_packet = 64M。将大型批量操作拆分为更小的批次。评估是否确实需要存储非常大的值。

在 DBAtlas 中打开 →

同一数据库的其他条目