ChatGPT解决这个技术问题 Extra ChatGPT

phpMyadmin 中的最大执行时间

当我尝试在 phpMyadmin 中执行(某些)查询时,出现此错误

致命错误:第 140 行的 C:\xampp\phpmyadmin\libraries\dbi\mysql.dbi.lib.php 中的最大执行时间超过了 60 秒

因为我有一个非常大的表(超过 900 万条记录)

我已经编辑了文件 C:\xampp\php\php.ini

并将“最大执行时间”的值从 60 更改为 1000,然后重新启动 PHP 并仍然有相同的错误。

有什么解决办法吗?

您必须要求重新启动服务器。更改配置或 ini 文件后。

S
Simon East

我有同样的错误,请转到

xampp\phpMyAdmin\libraries\config.default.php

寻找:$cfg['ExecTimeLimit'] = 600;

您可以将“600”更改为任何更高的值,例如“6000”。

以秒为单位的最大执行时间为(0 表示无限制)。

这将解决您的错误。


您可以使用代码格式来明确什么是代码,什么不是代码:)
很清楚(在文件的标题中)你不应该编辑这个文件。相反,您应该编辑 config.inc.php,添加这一行,正如它在其他答案中所说
在下面检查我的答案。这就是要走的路;)
将此添加到 config.inc.php 并没有为我完成这项工作。修改 config.default.php 有帮助并且有效。
对于 wamp 路径是 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 对我不起作用
M
M_R_K

适用于 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

除了更小的数据集(~120k 行)之外,我一直遇到完全相同的问题 - 你的回答肯定让事情变得更好:)。
在桌子上按浏览时,我立即得到了 xampp for Windows 的脚本超时 ~ 130mb
遗憾的是 $cfg['ExecTimeLimit'] = 6000; 似乎对我的安装影响为零。我宁愿在本地设置它而不是在适用于整个服务器的 php.ini 中设置它,但也许这是唯一的选择。
不知道所有这些都做了什么,但你得到了我的投票:-)
这应该是“完美”的公认答案。
S
Sony Mathew

我在执行 curl 时遇到了同样的问题。当我在 php.ini 文件中更改以下内容时,我做对了:

max_execution_time = 1000 ;

并且

max_input_time = 1000 ;

可能您的问题应该通过进行上述两个更改并重新启动 apache 服务器来解决。

即使更改了上述问题仍然存在,如果您认为这是因为使用 mysql 进行了一些数据库操作,您也可以尝试更改:

mysql.connect_timeout = 1000 ; // this is not neccessary

所有这些都应该在 php.ini 文件中进行更改,并且应该重新启动 apache 服务器以查看更改。


D
DylanWoods

您的更改应该有效。但是,“xampp”堆栈可能很少有 php.ini 配置文件。尝试确定是否存在特定于“apache”的 php.ini。一个潜在的位置是:

C:\xampp\apache\bin\php.ini


在我的 xampp 上 C:\xampp\php\php.ini 中的那个文件并转到行号 442 (大约 - 有时该行号会在手动编辑后更改)max_execution_time = 1000 但这对我不起作用。然后我会在 C:\xampp\phpMyAdmin\config.inc.php $cfg['Servers'][$i]['bs_temp_blob_timeout'] = 1200; 上试试这个
B
Bill Karwin

更改 Web 应用程序的 php.ini 需要重新启动 Apache。

您应该通过运行执行函数 phpinfo() 的 PHP 脚本来验证更改是否发生。该函数的输出会告诉你很多 PHP 参数,包括超时值。

您可能还更改了与 Apache 使用的文件不同的 php.ini 副本。


T
Tim Cooper

ini_set('max_execution_time', 0); 或创建名为 php.ini 的文件名并输入第一行 max_execution_time=0 然后保存并将文件放在应用程序的根文件夹中。

而已。祝你好运。


有一个 set_time_limit() 函数。无需(ab)使用 ini_set()
C
Casso

在 WAMP 上对我有用的是修改文件:\Wamp64\alias\phpmyadmin.conf,行:

 php_admin_value max_execution_time 600
 php_admin_value max_input_time 600

我不必更改库文件。


S
Sandeep

对于 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' 

a
andymnc

在 php.ini 中,您也必须检查 mysql.connect_timeout。这负责关闭套接字并返回致命的。因此,例如,将其更改为:

mysql.connect_timeout = 3600

该时间将始终以秒为单位,因此在我的示例中,您有 1 小时。


J
Jamal

可能您正在使用 XMAPP 作为服务,要正确重新启动 XMAPP,您必须打开 XMAPP 控制面板,取消选中针对 Apache 和 MySQL 的“Svc”mdodules。然后点击退出,现在重启 XMAPP 就完成了。


A
Ari

前往xampp/php/php.ini

找到这一行:

max_execution_time=30

并将其值更改为您想要的任何数字。重启阿帕奇。