0

我正在尝试通过 phpMyAdmin 导出大型数据库。我收到一个错误,脚本停止,因为达到了 600 秒的最大执行时间(或类似的东西)。我尝试设置max_execution_timephp.ini0和-1。正如我在 中看到的那样,更改生效phpinfo(),但我仍然收到错误消息。另一个奇怪的事情是最初(在我将其更改为 0 之前)它也不是 600。是180!这个600集在哪里?

4

3 回答 3

3

看看它是否在某个地方手动设置。假设您在 UNIX 类型的平台上:

find /path/to/root/of/phpmyadmin -name "*.php" -print0 | xargs -0 grep "max_execution_time"
于 2012-06-27T12:31:10.763 回答
1

您的 Web 服务器可以有其他可能会中断 PHP 执行的超时配置。Apache 有一个 Timeout 指令,而 IIS 有一个 CGI 超时功能。有关特定详细信息,请参阅您的 Web 服务器文档。

不要使用 phpMyAdmin 导入大文件。尝试使用 mysql CLI 导入数据库的转储。将 SQL 文件传输到服务器并使用 PHP 脚本(如 shell_exec 或 system)在服务器上执行以下命令

mysql --user=user --password=password 数据库 < database_dump.sql。

当然数据库必须存在,并且您提供的用户应该具有更新数据库的必要权限。

于 2012-06-27T11:45:12.123 回答
-1

默认情况下,PHP 使用以下三个指令对所有 php 脚本设置资源限制: => max_execution_time:每个脚本的最大执行时间,以秒为单位(默认为 30 秒)

=> max_input_time: 每个脚本可能花费在解析请求数据上的最长时间(60 秒)

=> memory_limit: 脚本可能消耗的最大内存量(默认 8MB)

您的 php 脚本超时可能是由于资源限制。您需要做的就是设置新的资源限制,以便执行脚本。

如果这也不起作用,您可以使用set_time_limit(N)函数设置它,该函数以秒为单位设置时间限制。

于 2012-06-27T11:44:42.603 回答