Tempo massimo di esecuzione in phpMyadmin


108

Quando provo a eseguire (alcune) query in phpMyadmin ottengo questo errore

Errore irreversibile: tempo massimo di esecuzione di 60 secondi superato in C: \ xampp \ phpmyadmin \ libraries \ dbi \ mysql.dbi.lib.php alla riga 140

perché ho una tabella molto grande (oltre 9 milioni di record)

Ho modificato il file C: \ xampp \ php \ php.ini

e modificato il valore di "tempo massimo di esecuzione" da 60 a 1000, quindi riavvia il PHP e presenta ancora lo stesso errore.

Qualche soluzione?


1
È necessario richiedere il riavvio del server. Dopo la modifica nel file di configurazione o ini.
4302836

Risposte:


196

Ho lo stesso errore, per favore vai a

xampp \ phpMyAdmin \ librerie \ config.default.php

Cercare : $cfg['ExecTimeLimit'] = 600;

Puoi cambiare "600" con un valore più alto, ad esempio "6000".

Il tempo massimo di esecuzione in secondi è (0 per nessun limite).

Questo risolverà il tuo errore.


1
È possibile utilizzare il codice di formattazione per rendere chiaro ciò che è il codice e ciò che non è così :)
durata

24
È abbastanza chiaro (nell'intestazione del file) che non dovresti modificare questo file. Invece, dovresti modificare config.inc.php, aggiungendo questa riga, come dice in un'altra risposta
dsnunez

1
Controlla la mia risposta qui sotto. Questa è la strada da percorrere;)
M_R_K

3
L'aggiunta di questo a config.inc.phpnon ha funzionato per me. Modificando il config.default.phpaiutato e lavorato.
Spurio

Per wamp path è wamp64\apps\phpmyadmin4.6.4\libraries\config.default.phpOPPURE puoi trovare il percorso della tua directory phpmyadmin facendo clic wamp tray icon > Apache > Alias Directoriese modificando phpmyadmin. Inoltre, come menzionato da dsnunez, è meglio modificare config.inc.php--edit-- l'editing config.inc.phpnon ha funzionato per me
AbsarAkram

107

Per la versione Xampp su Windows

Aggiungi questa riga a xampp \ phpmyadmin \ config.inc.php

$cfg['ExecTimeLimit'] = 6000;

E cambia xampp \ php \ php.ini in

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

E cambia xampp \ mysql \ bin \ my.ini

max_allowed_packet = 200M

1
Ho riscontrato esattamente gli stessi problemi tranne che con un set di dati molto più piccolo (~ 120k righe) - la tua risposta ha decisamente migliorato le cose :).
Rapina il

Ho ottenuto il timeout dello script per xampp per Windows immediatamente quando si preme Browse su un tavolo ~ 130mb
Matthew Lock

Purtroppo $cfg['ExecTimeLimit'] = 6000;sembra non avere alcun effetto sulla mia installazione. Preferisco impostarlo localmente che in php.ini che si applica all'intero server, ma forse è l'unica opzione.
Simon East,

1
Non sono sicuro di cosa
facciano

13

Ho affrontato lo stesso problema durante l'esecuzione di un ricciolo. Ho capito bene quando ho modificato quanto segue nel php.inifile:

max_execution_time = 1000 ;

e anche

max_input_time = 1000 ;

Probabilmente il tuo problema dovrebbe essere risolto apportando le due modifiche sopra e riavviando il server Apache.

Anche dopo aver modificato quanto sopra il problema persiste e se pensi che sia a causa di alcune operazioni sul database usando mysql puoi provare a cambiare anche questo:

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

Tutto questo dovrebbe essere cambiato nel file php.ini e il server Apache dovrebbe essere riavviato per vedere le modifiche.


7

La tua modifica dovrebbe funzionare. Tuttavia, ci sono potenzialmente pochi file di configurazione php.ini con lo stack "xampp". Prova a identificare se esiste o meno un php.ini specifico per "apache". Una posizione potenziale è:

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


1
sul mio xampp quel file in C:\xampp\php\php.inie goto la riga numero 442 (approssimativamente - qualche volta quel numero di riga verrà cambiato dopo la modifica manuale) max_execution_time = 1000 ma questo non funziona per me. Quindi lo proverò su C: \ xampp \ phpMyAdmin \ config.inc.php$cfg['Servers'][$i]['bs_temp_blob_timeout'] = 1200;
Elshan

5

Mutevole php.ini per un'applicazione web richiede il riavvio di Apache.

Dovresti verificare che la modifica sia avvenuta eseguendo uno script PHP che esegua la funzione phpinfo(). L'output di quella funzione ti dirà molti parametri PHP, incluso il valore di timeout.

Potresti anche aver cambiato una copia php.iniche non è lo stesso file usato da Apache.


5

ini_set('max_execution_time', 0);oppure crea il nome del file chiamato php.inie inserisci la prima rigamax_execution_time=0 quindi salvalo e metti il ​​file nella cartella principale dell'applicazione.

Questo è tutto. In bocca al lupo.


3
C'è una set_time_limit()funzione. Non c'è bisogno di (ab) usare ini_set().
ThiefMaster

3

Bene per l'utente Wamp,

Vai a: wamp\apps\phpmyadmin3.3.9\libraries

Sotto la riga 536, locate $cfg['ExecTimeLimit'] = 0;

e modificare il valore da 0 a 6000. es

$cfg['ExecTimeLimit'] = 0;

Per

$cfg['ExecTimeLimit'] = 6000;

Riavvia il server wamp e phew.

Funziona come per magia!


Questo in realtà è sbagliato, dovrebbe essere il contrario 0significa nessun limite di tempo di esecuzione
user919426

2

In php.ini devi controllare anche mysql.connect_timeout. È responsabile della chiusura del socket e della restituzione di Fatal. Quindi, ad esempio, modificalo in:

mysql.connect_timeout = 3600

Quel tempo sarà sempre contato in secondi, quindi nel mio esempio hai 1 ora.


2

Quello che ha funzionato per me su WAMP è stato modificare il file: \ Wamp64 \ alias \ phpmyadmin.conf, righe:

 php_admin_value max_execution_time 600
 php_admin_value max_input_time 600

Non ho dovuto modificare il file della libreria.


1

Probabilmente stai usando XMAPP come servizio, per riavviare XMAPP correttamente, devi aprire il pannello di controllo XMAPP deselezionando entrambi gli mdodule "Svc" contro Apache e MySQL. Quindi fai clic su Esci, riavvia XMAPP e il gioco è fatto.



1

"ZERO" per un tempo illimitato.

C: \ Apache24 \ htdocs \ phpMyAdmin \ librerie \ Config.class.php

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

Puoi anche importare il file di grandi dimensioni direttamente da MySQL come query o query PHP.

500.000 righe mi ci sono voluti 18 secondi per importare sul server locale, utilizzando questo metodo.

(crea prima la tabella) - poi:

LOAD DATA LOCAL INFILE 'Path_To_Your_File.csv' 
INTO TABLE Your_Table_Name 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n' 
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.