为什么max_allowed_pa​​cket没有效果?

时间:2013-02-01 20:59:12

标签: php mysql

我正在尝试将大量数据放入数据库中。

我观察到当数据大于1Mb时,我得到500 - Mysql已经消失了。

当数据接近1Mb标记时,我收到一条错误,指出已达到最大数据包大小。

当数据小于或等于1Mb时,查询每次都成功。

我在my.ini中查看了max_allowed_pa​​cket(我在Windows机器上运行),并将其设置为16M甚至更高。我已经确定我也重新启动了mysql。

但同样的行为正在发生。我错过了哪个地方?为了您的信息,我使用PHP来运行查询。

感谢。

4 个答案:

答案 0 :(得分:1)

您可以将max_allowed_pa​​cket设置为全局变量。您可以动态设置此变量,而无需重新启动MYSQL服务。

您可以将其增加到1千兆字节。我建议将其设置为您希望插入的最大数据字符串的至少2倍。这将为你提供一些扩展的空间,因为当然下周你将需要处理比你预期的更大的文件。

请参阅此处的PHP代码中动态设置max_allowed_pa​​cket的示例:http://www.devplace.nl/blog/storing-large-values-in-mysql-fields-with-php

答案 1 :(得分:1)

我遇到了类似的问题并通过在php.ini上增加 upload_max_filesize memory_limit 解决了这个问题

答案 2 :(得分:0)

fopen文件句柄,然后将resource绑定到参数。

答案 3 :(得分:0)

原来我需要在两个地方更改它。我在phpMyAdmin上发现,在最大数据包允许的设置和变量下确实仍然是1M,尽管我在配置中更改了它。

通过这些新信息,我能够专注于我的搜索,并将其引导至

SET @@ global.max_allowed_pa​​cket = n

这向我展示了如何更改全局设置!

问题是,我认为如果服务器重置,它会回到原来的状态,我需要做一些设置文件。我现在不需要更多并发症。