Tempo máximo de execução no phpMyadmin

108

Quando tento executar (algumas) consultas no phpMyadmin, recebo este erro

Erro fatal: tempo máximo de execução de 60 segundos excedido em C: \ xampp \ phpmyadmin \ libraries \ dbi \ mysql.dbi.lib.php na linha 140

porque tenho uma tabela muito grande (mais de 9 milhões de registros)

Eu editei o arquivo C: \ xampp \ php \ php.ini

e mudei o valor do "tempo máximo de execução" de 60 para 1000 então reinicia o PHP e ainda tem o mesmo erro.

Qualquer solução?

ahmed
fonte
1
Você deve exigir a reinicialização do servidor. Após alterar o arquivo de configuração ou ini.
4302836

Respostas:

196

Eu tenho o mesmo erro, por favor vá para

xampp \ phpMyAdmin \ libraries \ config.default.php

Olhe para : $cfg['ExecTimeLimit'] = 600;

Você pode alterar '600' para qualquer valor superior, como '6000'.

O tempo máximo de execução em segundos é (0 para nenhum limite).

Isso corrigirá seu erro.

user1900623
fonte
1
Você pode usar a formatação de código para deixar claro o que é código e o que não é :)
período de
24
É bastante claro (no cabeçalho do arquivo) que você não deve editar este arquivo. Em vez disso, você deve editar config.inc.php, adicionando esta linha, como diz em outra resposta
dsnunez
1
Verifique minha resposta abaixo. Esse é o caminho a percorrer;)
M_R_K
3
Adicionar isso ao config.inc.phpnão funcionou para mim. Modificando o config.default.phpajudou e funcionou.
Espúrio
Para wamp, o caminho é wamp64\apps\phpmyadmin4.6.4\libraries\config.default.phpOU você pode encontrar o caminho do diretório phpmyadmin clicando wamp tray icon > Apache > Alias Directoriese editando o phpmyadmin. Também como mencionado por dsnunez, é melhor editar config.inc.php--editar-- a edição config.inc.phpnão funcionou para mim
AbsarAkram
107

Para a versão Xampp no ​​Windows

Adicione esta linha a xampp \ phpmyadmin \ config.inc.php

$cfg['ExecTimeLimit'] = 6000;

E mude xampp \ php \ php.ini para

post_max_size = 750M 
upload_max_filesize = 750M   
max_execution_time = 5000
max_input_time = 5000
memory_limit = 1000M

E mude xampp \ mysql \ bin \ my.ini

max_allowed_packet = 200M
M_R_K
fonte
1
Tenho tido exatamente os mesmos problemas, exceto com um conjunto de dados muito menor (~ 120k linhas) - sua resposta definitivamente tornou as coisas muito melhores :).
Rob
Eu obtive o tempo limite do script para xampp para Windows instantaneamente ao pressionar Navegar em uma mesa ~ 130 MB
Matthew Lock
Infelizmente, $cfg['ExecTimeLimit'] = 6000;parece não ter efeito zero na minha instalação. Prefiro configurá-lo localmente do que em php.ini, que se aplica a todo o servidor, mas talvez seja a única opção.
Simon East
1
Não tenho certeza do que todos fazem, mas você tem o meu voto :-)
nawissor
13

Eu enfrentei o mesmo problema ao executar um curl. Eu acertei quando alterei o seguinte no php.iniarquivo:

max_execution_time = 1000 ;

e também

max_input_time = 1000 ;

Provavelmente, seu problema deve ser resolvido fazendo as duas alterações acima e reiniciando o servidor apache.

Mesmo depois de alterar o acima, o problema persiste e se você acha que é por causa de alguma operação do banco de dados usando mysql, você pode tentar alterar isso também:

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

Tudo isso deve ser alterado no arquivo php.ini e o servidor apache deve ser reiniciado para ver as alterações.

Sony Mathew
fonte
7

Sua mudança deve funcionar. No entanto, existem potencialmente poucos arquivos de configuração php.ini com a pilha 'xampp'. Tente identificar se existe ou não um arquivo php.ini específico do 'apache'. Um local potencial é:

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

Brian
fonte
1
no meu xampp esse arquivo C:\xampp\php\php.inie vá para a linha número 442 (aproximadamente - em algum momento o número da linha será alterado após a edição manual), max_execution_time = 1000 mas isso não funciona para mim. Então, vou tentar fazer isso em C: \ xampp \ phpMyAdmin \ config.inc.php$cfg['Servers'][$i]['bs_temp_blob_timeout'] = 1200;
Elshan
5

Mudar php.inipara um aplicativo da web requer reiniciar o Apache.

Você deve verificar se a mudança ocorreu executando um script PHP que executa a função phpinfo(). A saída dessa função informará muitos parâmetros do PHP, incluindo o valor de tempo limite.

Você também pode ter alterado uma cópia php.inique não é o mesmo arquivo usado pelo Apache.

Bill Karwin
fonte
5

ini_set('max_execution_time', 0);ou crie o nome do arquivo chamado php.inie insira a primeira linha max_execution_time=0, salve-o e coloque o arquivo na pasta raiz do seu aplicativo.

É isso aí. Boa sorte.

Karthikeyan
fonte
3
Existe uma set_time_limit()função. Não há necessidade de (ab) usar ini_set().
ThiefMaster
3

Bom para o usuário Wamp,

Vamos para: wamp\apps\phpmyadmin3.3.9\libraries

Sob a linha 536, locate $cfg['ExecTimeLimit'] = 0;

e altere o valor de 0 para 6000. por exemplo

$cfg['ExecTimeLimit'] = 0;

Para

$cfg['ExecTimeLimit'] = 6000;

Reinicie o servidor wamp e ufa.

Funciona como mágica!

Olasunkanmi
fonte
Isso está realmente errado, deveria ser o contrário 0significa sem limite de tempo de execução
usuário 919426
2

No php.ini você também deve verificar mysql.connect_timeout. É responsável pelo fechamento do soquete e retorno do Fatal. Então, por exemplo, mude para:

mysql.connect_timeout = 3600

Esse tempo será sempre contado em segundos, então no meu exemplo você tem 1 hora.

andymnc
fonte
2

O que funcionou para mim no WAMP foi modificar o arquivo: \ Wamp64 \ alias \ phpmyadmin.conf, linhas:

 php_admin_value max_execution_time 600
 php_admin_value max_input_time 600

Não precisei alterar o arquivo de biblioteca.

Casso
fonte
1

Provavelmente você está usando o XMAPP como serviço, para reiniciar o XMAPP corretamente, você deve abrir o painel de controle do XMAPP e desmarcar ambos os módulos "Svc" no Apache e no MySQL. Em seguida, clique em sair, reinicie o XMAPP e pronto.

Jamal
fonte
1

'ZERO' por tempo ilimitado.

C: \ Apache24 \ htdocs \ phpmyadmin \ libraries \ Config.class.php

/**
 * maximum execution time in seconds (0 for no limit)
 *
 * @global integer $cfg['ExecTimeLimit']
 */
$cfg['ExecTimeLimit'] = 0;

Você também pode importar o arquivo grande direto do MySQL como consulta ou consulta PHP.

500.000 linhas levaram apenas 18 segundos para importar no servidor local, usando este método.

(crie a tabela primeiro) - então:

LOAD DATA LOCAL INFILE 'Path_To_Your_File.csv' 
INTO TABLE Your_Table_Name 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n' 
KDawg
fonte