当我尝试在 phpMyadmin 中执行(某些)查询时,出现此错误
致命错误:第 140 行的 C:\xampp\phpmyadmin\libraries\dbi\mysql.dbi.lib.php 中的最大执行时间超过了 60 秒
因为我有一个非常大的表(超过 900 万条记录)
我已经编辑了文件 C:\xampp\php\php.ini
并将“最大执行时间”的值从 60 更改为 1000,然后重新启动 PHP 并仍然有相同的错误。
有什么解决办法吗?
我有同样的错误,请转到
xampp\phpMyAdmin\libraries\config.default.php
寻找:$cfg['ExecTimeLimit'] = 600;
您可以将“600”更改为任何更高的值,例如“6000”。
以秒为单位的最大执行时间为(0 表示无限制)。
这将解决您的错误。
适用于 Windows 上的 Xampp 版本
将此行添加到 xampp\phpmyadmin\config.inc.php
$cfg['ExecTimeLimit'] = 6000;
并将 xampp\php\php.ini 更改为
post_max_size = 750M
upload_max_filesize = 750M
max_execution_time = 5000
max_input_time = 5000
memory_limit = 1000M
并更改 xampp\mysql\bin\my.ini
max_allowed_packet = 200M
$cfg['ExecTimeLimit'] = 6000;
似乎对我的安装影响为零。我宁愿在本地设置它而不是在适用于整个服务器的 php.ini 中设置它,但也许这是唯一的选择。
我在执行 curl 时遇到了同样的问题。当我在 php.ini
文件中更改以下内容时,我做对了:
max_execution_time = 1000 ;
并且
max_input_time = 1000 ;
可能您的问题应该通过进行上述两个更改并重新启动 apache 服务器来解决。
即使更改了上述问题仍然存在,如果您认为这是因为使用 mysql 进行了一些数据库操作,您也可以尝试更改:
mysql.connect_timeout = 1000 ; // this is not neccessary
所有这些都应该在 php.ini 文件中进行更改,并且应该重新启动 apache 服务器以查看更改。
您的更改应该有效。但是,“xampp”堆栈可能很少有 php.ini 配置文件。尝试确定是否存在特定于“apache”的 php.ini。一个潜在的位置是:
C:\xampp\apache\bin\php.ini
C:\xampp\php\php.ini
中的那个文件并转到行号 442 (大约 - 有时该行号会在手动编辑后更改)max_execution_time = 1000
但这对我不起作用。然后我会在 C:\xampp\phpMyAdmin\config.inc.php $cfg['Servers'][$i]['bs_temp_blob_timeout'] = 1200;
上试试这个
更改 Web 应用程序的 php.ini
需要重新启动 Apache。
您应该通过运行执行函数 phpinfo()
的 PHP 脚本来验证更改是否发生。该函数的输出会告诉你很多 PHP 参数,包括超时值。
您可能还更改了与 Apache 使用的文件不同的 php.ini
副本。
ini_set('max_execution_time', 0);
或创建名为 php.ini
的文件名并输入第一行 max_execution_time=0
然后保存并将文件放在应用程序的根文件夹中。
而已。祝你好运。
set_time_limit()
函数。无需(ab)使用 ini_set()
。
在 WAMP 上对我有用的是修改文件:\Wamp64\alias\phpmyadmin.conf,行:
php_admin_value max_execution_time 600
php_admin_value max_input_time 600
我不必更改库文件。
对于 Wamp 用户来说,
转到:wamp\apps\phpmyadmin3.3.9\libraries
在第 536 行下,locate $cfg['ExecTimeLimit'] = 0;
并将值从 0 更改为 6000。例如
$cfg['ExecTimeLimit'] = 0;
至
$cfg['ExecTimeLimit'] = 6000;
重新启动 wamp 服务器和 phew。
它像魔术一样工作!
0
表示没有执行时间限制
“零”无限时间。
C:\Apache24\htdocs\phpmyadmin\libraries\Config.class.php
/**
* maximum execution time in seconds (0 for no limit)
*
* @global integer $cfg['ExecTimeLimit']
*/
$cfg['ExecTimeLimit'] = 0;
您还可以直接从 MySQL 导入大文件作为查询或 PHP 查询。
使用这种方法,500,000 行只花了我 18 秒在本地服务器上导入。
(首先创建表) - 然后:
LOAD DATA LOCAL INFILE 'Path_To_Your_File.csv'
INTO TABLE Your_Table_Name
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
在 php.ini 中,您也必须检查 mysql.connect_timeout。这负责关闭套接字并返回致命的。因此,例如,将其更改为:
mysql.connect_timeout = 3600
该时间将始终以秒为单位,因此在我的示例中,您有 1 小时。
可能您正在使用 XMAPP 作为服务,要正确重新启动 XMAPP,您必须打开 XMAPP 控制面板,取消选中针对 Apache 和 MySQL 的“Svc”mdodules。然后点击退出,现在重启 XMAPP 就完成了。
前往xampp/php/php.ini
找到这一行:
max_execution_time=30
并将其值更改为您想要的任何数字。重启阿帕奇。
config.inc.php
并没有为我完成这项工作。修改config.default.php
有帮助并且有效。wamp64\apps\phpmyadmin4.6.4\libraries\config.default.php
或者您可以通过单击wamp tray icon > Apache > Alias Directories
找到 phpmyadmin 目录的路径并编辑 phpmyadmin。也正如 dsnunez 所提到的,最好编辑config.inc.php
--edit-- 编辑config.inc.php
对我不起作用