phpMyAdmin 超时不符合 PHP.ini max_execution_time
phpMyAdmin timeout not respecting PHP.ini max_execution_time
尝试使用 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 中不断收到超时错误,建议重新运行 导入选择相同的文件,但是在第 2 天 运行 我总是收到 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 天 运行,我收到错误:
错误
静态分析:
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 分成更小的块?
除了最大执行时间,PHP 还将限制 post 最大大小、内存限制、上传最大文件大小。 (都可以关联到数据导入的上传文件操作)。如果其中任何一个达到允许的限制,将导致执行失败并抛出超时错误
因此您可以设置/更改以下内容
ini_set('memory_limit', '40M');
ini_set('max_execution_time', 80000);
ini_set('post_max_size', '40M');
ini_set('upload_max_filesize', '40M');
我不确定这是否适合遇到相同问题的人,但我的解决方法是使用 SQL Dump File Splitter
将大 SQL 文件拆分成较小的文件
尝试使用 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 中不断收到超时错误,建议重新运行 导入选择相同的文件,但是在第 2 天 运行 我总是收到 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 天 运行,我收到错误:
错误 静态分析:
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 分成更小的块?
除了最大执行时间,PHP 还将限制 post 最大大小、内存限制、上传最大文件大小。 (都可以关联到数据导入的上传文件操作)。如果其中任何一个达到允许的限制,将导致执行失败并抛出超时错误
因此您可以设置/更改以下内容
ini_set('memory_limit', '40M');
ini_set('max_execution_time', 80000);
ini_set('post_max_size', '40M');
ini_set('upload_max_filesize', '40M');
我不确定这是否适合遇到相同问题的人,但我的解决方法是使用 SQL Dump File Splitter
将大 SQL 文件拆分成较小的文件