phpMyadmin中的最大执行时间


108

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

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

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

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

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

有什么办法吗?


1
您必须要求重新启动服务器。在更改config或ini文件之后。
4302836 '16

Answers:


196

我有同样的错误,请转到

xampp \ phpMyAdmin \ libraries \ config.default.php

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

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

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

这将解决您的错误。


1
您可以使用代码格式化要清楚是什么代码,什么是没有很好:)
跨度

24
很明显(在文件的标题中)您不应编辑此文件。相反,您应该编辑config.inc.php,添加此行,如其他答案中所述
dsnunez 2015年

1
在下面检查我的答案。这就是要走的路;)
M_R_K 2015年

3
将其添加到config.inc.php并没有完成我的工作。修改config.default.php帮助和工作。
虚假的

对于wamp path为wamp64\apps\phpmyadmin4.6.4\libraries\config.default.phpOR,您可以通过单击wamp tray icon > Apache > Alias Directories并编辑phpmyadmin 找到phpmyadmin目录的路径。就像dsnunez提到的那样,最好不要编辑config.inc.php--edit--编辑config.inc.php对我不起作用
AbsarAkram

107

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

1
除了较小的数据集(约12万行)以外,我一直遇到完全相同的问题-您的回答肯定会使事情变得更好:)。
罗布

当我在一张桌子上按浏览〜130mb时,我立即获得了xampp for Windows的脚本超时
Matthew Lock

可悲的是$cfg['ExecTimeLimit'] = 6000;似乎对我的安装没有影响。我宁愿在本地进行设置,而不是在适用于整个服务器的php.ini中进行设置,但这也许是唯一的选择。
西蒙东

1
不确定所有操作,但您得到我的投票了:-)
nawissor

13

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

max_execution_time = 1000 ;

并且

max_input_time = 1000 ;

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

即使更改了上述内容,问题仍然存在,并且如果您认为是由于使用mysql进行了某些数据库操作,您也可以尝试更改此内容:

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

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


7

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

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


1
在我的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;
Elshan 2014年

5

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

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

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


5

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

而已。祝好运。


3
有一个set_time_limit()功能。不需要(滥用)ini_set()
ThiefMaster

3

对于Wamp用户,

去: wamp\apps\phpmyadmin3.3.9\libraries

在第536行下, locate $cfg['ExecTimeLimit'] = 0;

并将值从0更改为6000。例如

$cfg['ExecTimeLimit'] = 0;

$cfg['ExecTimeLimit'] = 6000;

重新启动wamp服务器和phew。

它像魔术一样工作!


这实际上是错误的,应该以相反的方式0表示没有执行时间限制
user919426

2

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

mysql.connect_timeout = 3600

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


2

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

 php_admin_value max_execution_time 600
 php_admin_value max_input_time 600

我不必更改库文件。


1

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



1

“零”无限期。

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' 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.