【问题标题】:error: out of memory / the connection was reset错误:内存不足/连接已重置
【发布时间】:2015-12-07 11:14:05
【问题描述】:

我正在尝试在 Windows(64 位,4 Gb 内存)上使用 xampp(v 5.5.30)在 php 页面上进行大量选择 * { insert into..}。

几分钟后,我收到两条错误消息:

A) 在浏览器中“连接已重置”,或者有时:

B) "mysql_query(): (HY000/2008): Out of memory..." 在插入查询期间。

在这两种情况下,即使使用指令,PHP 脚本本身也会停止:

ignore_user_abort(true);

我不知道为什么会这样。我为此尝试过的事情:

1) 添加到我的 apache 配置文件中:

<IfModule mpm_winnt_module> ThreadStackSize 8388608 </IfModule> 因为在错误日志中我注意到连接重置时的行:

[2015 年 12 月 7 日星期一 13:01:23.540742] [mpm_winnt:notice] [pid 2344:tid 504] AH00428:父进程:子进程 4036 以状态 3221225477 退出 -- 正在重启。

[2015 年 12 月 7 日星期一 12:09:39.584814] [mpm_winnt:notice] [pid 1684:tid 528] AH00354:子:启动 150 个工作线程。

这个错误似乎在某种程度上与我的问题有关。然而更改配置文件并没有帮助,错误仍然出现。

2) 更改了 php ini 设置:

ini_set("memory_limit","750MB");

3) 删除所有 mysql 缓存使用:

RESET QUERY CACHE

4) 设置 PHP 超时时间:

set_time_limit(60*60);

几分钟后就会出现错误。

附加说明:主选择查询(mytable.MYD)中使用的表的文件大小为400Mb,其中我只使用了选择中的几列。一旦查询加载到 PHP 内存中,在执行 while 循环之前,内存占用为 60Mb(使用 memory_get_usage())

知道我能做些什么来解决这个问题吗?

谢谢

【问题讨论】:

  • 您似乎没有对问题发生的位置进行任何研究,也没有提供相关信息来支持对问题的任何分析。请阅读stackoverflow.com/help/how-to-ask

标签: php mysql apache xampp


【解决方案1】:

您还必须设置执行时间。

设置执行时间为0,在功能上相当于完全关闭执行限制:

ini_set('max_execution_time', 0);

希望它能解决你的问题

【讨论】:

  • 嗨,恐怕没有用;在我的 PHP 页面顶部,我已经设置了更大的超时时间:set_time_limit(60*60);。我应该编辑我的主要帖子以添加它
猜你喜欢
  • 2013-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多