我正在尝试将大量数据放入数据库中。
我观察到当数据大于1Mb时,我得到500 - Mysql已经消失了。
当数据接近1Mb标记时,我收到一条错误,指出已达到最大数据包大小。
当数据小于或等于1Mb时,查询每次都成功。
我在my.ini中查看了max_allowed_packet(我在Windows机器上运行),并将其设置为16M甚至更高。我已经确定我也重新启动了mysql。
但同样的行为正在发生。我错过了哪个地方?为了您的信息,我使用PHP来运行查询。
感谢。
答案 0 :(得分:1)
您可以将max_allowed_packet设置为全局变量。您可以动态设置此变量,而无需重新启动MYSQL服务。
您可以将其增加到1千兆字节。我建议将其设置为您希望插入的最大数据字符串的至少2倍。这将为你提供一些扩展的空间,因为当然下周你将需要处理比你预期的更大的文件。
请参阅此处的PHP代码中动态设置max_allowed_packet的示例: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_packet = n
这向我展示了如何更改全局设置!
问题是,我认为如果服务器重置,它会回到原来的状态,我需要做一些设置文件。我现在不需要更多并发症。