1

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

我观察到当数据远大于 1Mb 时,我得到一个 500 - Mysql has gone away 错误。

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

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

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

但同样的行为正在发生。我想念的地方还有其他设置吗?供您参考,我使用 PHP 来运行查询。

谢谢。

4

4 回答 4

1

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

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

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

于 2013-02-01T21:10:12.287 回答
1

我有类似的问题,并通过增加php.ini 上的upload_max_filesizememory_limit来解决它

于 2013-02-01T21:12:04.807 回答
0

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

有了这些新信息,我能够集中搜索并引导我

SET @@global.max_allowed_pa​​cket=n

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

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

于 2013-02-06T13:45:24.067 回答
0

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

于 2013-02-02T13:48:53.607 回答