MySQL max_allowed_pa​​cket 大于 1024 MB

Nau*_*ris 3 mysql

我有一个大于 1GB (~1,4GB) 的数据库。数据库上传在 1GB 时停止,因为 max_allowed_pa​​cket 是 1073741824 (1GB)。在文件 /etc/my.conf 中,我设置了 max_allowed_pa​​cket=2048M。

如何将 max_allowed_pa​​cket 1073741824 增加到更大?

谢谢你!

Rol*_*DBA 7

坏消息

max_allowed_pa​​cket的最大值为 1G 或 1024M。

即使您将其设置得更高,MySQL 也不会加载超过 1GB 限制的数据。

好消息

MySQL 数据包用于处理行,尤其是批量处理。表中的 TEXT/BLOB 字段越小,MySQL 数据包的使用就越健壮。为了让您对它的使用更有信心,这里解释一下 MySQL 数据包是什么:

根据“了解 MySQL 内部结构”(ISBN 0-596-00957-7)第 99 页,这里是第 1-3 段的解释:

MySQL 网络通信代码是在查询总是相当短的假设下编写的,因此可以在一个块中发送到服务器并由服务器处理,这在 MySQL 术语中称为数据包。服务器为临时缓冲区分配内存来存储数据包,并请求足够的内存来完全容纳它。这种架构需要采取预防措施以避免服务器内存不足——数据包大小的上限,此选项可实现这一点。

与此选项相关的代码可在sql/net_serv.cc 中找到 。查看my_net_read(),然后按照对my_real_read()的调用并特别注意 net_realloc()

此变量还限制了许多字符串函数的结果的长度。有关详细信息,请参阅sql/field.ccsql/intem_strfunc.cc