Apache / PHP 在 2000 年左右开始拒绝 SQL 请求

Apache / PHP 在 2000 年左右开始拒绝 SQL 请求

我们的服务器上有一个网页,我们用它来运行管理脚本。例如,我们可以运行脚本“unenrolStudents()”,该脚本会连续运行 5,000 条 SQL SET 命令,并将 SQL 数据库中的 5000 个学生条目设置为取消注册。但是,我们发现在运行几千个查询后(它并不完全一致),我们将被服务器“锁定”。

锁定症状:
- 无法使用 winSCP 连接到服务器
- 使用该连接打开 putty 时显示空白屏幕(无登录/密码)
- 清除 chrome 中的 cookies/缓存无法解决锁定问题
- 办公室中的其他计算机也会被锁定
- 请求频率高(1 秒内 10,000 个)或请求时间短(500 秒内 10,000 个 - 尽管频率低得多,仍会导致锁定)可能会触发锁定

我们相信这是我们自己的 Apache 的安全功能。我知道我们正在使用 Suhosin,但我没有配置它,所以我不知道。

我如何才能禁用此锁定效果,以便我可以自信地运行所有 SQL 请求并让它们通过?有没有其他人处理过这个问题并找到了解决方法?

谢谢 DS

答案1

php 脚本的执行时间非常短。您尝试过延长它吗?

<?php  ini_set('max_execution_time', 300);
// code here
?>

答案2

在我看来,您正在尝试通过配置设置来解决软件架构问题。

我建议编写软件来重复使用连接,而不是为每个操作打开新的连接。

答案3

我立刻想到了两件事。

  1. 如果您运行 5,000 个查询来对 5,000 条记录执行相同的操作,则需要将其更改为带有适当的“where”子句的单个查询。
  2. 运行那么多查询可能会导致您的服务器达到内存限制。

相关内容