首页 文章

使用大量数据包时不会出现“数据包太大”错误

提问于
浏览
0

我的情况很简单 .

我有一台配置了max_allowed_packet设置为16M的服务器 . 它正在运行Percona Server 5.1.52 .

我在perl中写了一个简单的脚本来做大量的插件 . 通过了解我通过DBI发送的数据字符串有多大,我大致了解数据包的大小 .

无论大小插入MySQL的大小如何接受数据包并进行插入,但我希望它能为16M以上的任何东西提供一个数据包太大的错误 .

这里真的很奇怪......

如果我将max_allowed_packet设置为16777215(比16M少一个字节)或任何更低的值我得到超过该大小的数据包的错误,显然不会得到该大小下的数据包的错误 .

因此,似乎在任何低于16M的情况下都遵守了数据包限制,但是16M或更高,并且它完全被忽略 .

有什么可能导致这种情况的想法?这真是奇怪而且大多数人都遇到了与max_allowed_packet相反的问题 .

mysql客户端是否可能正在进行一些自动分块?服务器似乎只运行一个大查询,因此自动分块似乎不太可能,因为它可能显示为多个插入 .

我可以检查任何变量以获得有关正在发生的事情的更多信息?

2 回答

  • 0

    你在插什么?如果它只是非常大的BLOB, max_allowed_packet 没有效果 .

    常规字段的消息被分割并重新组装为网络协议 . 该参数用于传递BLOB字段 . 见documentation .

  • 0

    我将此报告为MySQL错误,并且已经过验证 . 所以,我想这就是现在 .

    这是5.1.52及以上的问题 .

    错误报告:http://bugs.mysql.com/58887

相关问题