【问题标题】:phpMyAdmin timeout not respecting PHP.ini max_execution_timephpMyAdmin 超时不考虑 PHP.ini max_execution_time
【发布时间】:2021-03-11 10:36:39
【问题描述】:

尝试使用 this method 将 150MB .sql.zip 文件导入 WAMP phpMyAdmin(将导入文件保存在 c:/wamp/sql 中,并编辑 C:\wamp\apps\phpmyadmin5.0.2\config.inc.php 以在末尾包含 $cfg['UploadDir'] = 'C:\wamp\sql';,然后在导入过程中导入文件保存到C:\wamp\sql的选项。

但是,我在 phpMyAdmin 中不断收到超时错误,建议选择相同的文件重新运行导入,但在第二次运行时我总是收到 SQL 错误。

所以,我在 Wamp 的 PHP.ini 中设置了 max_execution_time = 4500(4500 秒等于 75 分钟)并重新启动了 Apache 和 MySQL。

但是,在使用相同的导入过程时会出现相同的超时错误。大约 5 分钟后出现超时错误。

为什么超时错误发生在5分钟之内,而不是在PHP.ini max_execution_time = 4500设置的时间内?

编辑

phpinfo 说 localhost 有:

memory_limit    200M
post_max_size   200M
upload_max_filesize 200M
max_execution_time  4500

我继续收到已发生超时的消息,并使用同一文件再次重新运行导入,但在第二次运行时,我收到错误:

错误 静态分析:

2 errors were found during analysis.

Unexpected beginning of statement. (near "RT" at position 0)
Unrecognized statement type. (near "INTO" at position 3)

SQL query: Copy

RT INTO `cache_menu` 

看起来 SQL INSERT 命令正在被进程剪切。

如何安全地将 SQL 拆分成更小的块?

【问题讨论】:

  • 您可以查看phpinfo() 的输出以确认您的更改已正确应用;可能有另一个配置文件稍后加载并覆盖您的设置,或者其他一些问题阻止了它的激活。但是,除此之外,我建议先解压缩 sql 文件; phpMyAdmin 应该能够在 5 分钟内从 UploadDir 位置将本地文件加载到本地 MySQL,但是当它必须首先解压缩文件时,有许多限制可能会导致问题。试试未压缩的 .sql 看看会不会更好。

标签: php phpmyadmin timeout


【解决方案1】:

我不确定这对于遇到相同问题的人是否是一个足够的解决方案,但我的解决方法是使用 SQL Dump File Splitter 将大型 SQL 文件拆分为较小的文件

【讨论】:

    【解决方案2】:

    除了最大执行时间,PHP 还会对帖子最大大小、内存限制、上传最大文件大小有限制。 (都可以与数据导入的上传文件操作相关)。如果其中任何一个达到允许的限制,将导致执行失败并抛出超时错误

    因此您可以设置/更改以下内容

    ini_set('memory_limit', '40M'); 
    ini_set('max_execution_time', 80000); 
    ini_set('post_max_size', '40M'); 
    ini_set('upload_max_filesize', '40M'); 
    
    

    【讨论】:

      猜你喜欢
      • 2018-08-19
      • 2015-04-24
      • 2017-10-24
      • 2015-01-14
      • 1970-01-01
      • 2012-06-30
      • 2011-09-19
      • 1970-01-01
      • 2011-05-30
      相关资源
      最近更新 更多