MySQL max_allowed_pa​​cket大于1024 MB

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

我怎样才能增加max_allowed_pa​​cket 1073741824更大?

谢谢!

坏消息

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

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

好消息

MySQL数据包用于处理行,尤其是批量处理。 您的表格中的TEXT / BLOB字段越小,将使用的MySQL数据包越健壮。 所以你可以更加自信地使用它,下面是一个MySQL数据包的解释:

根据“Understanding MySQL Internals”(ISBN 0-596-00957-7)第99页 ,这里是第1-3段解释它:

MySQLnetworking通信代码是在这样的假设下编写的:查询总是合理的短,因此可以在一个块中被服务器发送和处理,这在MySQL术语中被称为 。 服务器为内存分配一个临时缓冲区来存储数据包,并且它提出了足够的要求来完全适合它。 这种架构需要采取一些预防措施,以避免服务器内存不足 – 这个选项可以完成数据包大小的限制。

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

这个variables也限制了许多string函数结果的长度。 有关详细信息,请参阅sql / field.ccsql / intem_strfunc.cc