Temps d'exécution maximum en phpMyadmin

108

Lorsque j'essaye d'exécuter (certaines) requêtes dans phpMyadmin, j'obtiens cette erreur

Erreur fatale: temps d'exécution maximum de 60 secondes dépassé dans C: \ xampp \ phpmyadmin \ bibliothèques \ dbi \ mysql.dbi.lib.php à la ligne 140

car j'ai une très grande table (plus de 9 millions d'enregistrements)

J'ai édité le fichier C: \ xampp \ php \ php.ini

et a changé la valeur du "temps d'exécution maximum" de 60 à 1000 puis redémarre le PHP et a toujours la même erreur.

Toute solution?

ahmed
la source
1
Vous devez avoir besoin de redémarrer votre serveur. Après avoir changé dans le fichier de configuration ou ini.
4302836 le

Réponses:

196

J'ai la même erreur, veuillez aller à

xampp \ phpMyAdmin \ bibliothèques \ config.default.php

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

Vous pouvez remplacer «600» par une valeur supérieure, telle que «6000».

Le temps d'exécution maximal en secondes est (0 pour aucune limite).

Cela corrigera votre erreur.

user1900623
la source
1
Vous pouvez utiliser la mise en forme du code pour clarifier ce qu'est le code et ce qui ne l'est pas :)
durée du
24
Il est assez clair (dans l'en-tête du fichier) que vous ne devez pas éditer ce fichier. Au lieu de cela, vous devriez éditer config.inc.php, en ajoutant cette ligne, comme il est dit dans une autre réponse
dsnunez
1
Vérifiez ma réponse ci-dessous. C'est la voie à suivre;)
M_R_K
3
L'ajout de cela à config.inc.phpn'a pas fait le travail pour moi. Modifier le fichier config.default.phpaidé et travaillé.
Faux
Pour wamp path est wamp64\apps\phpmyadmin4.6.4\libraries\config.default.phpOU vous pouvez trouver le chemin de votre répertoire phpmyadmin en cliquant wamp tray icon > Apache > Alias Directorieset éditer phpmyadmin. Aussi, comme mentionné par dsnunez, il est préférable de modifier config.inc.php--edit-- l'édition config.inc.phpn'a pas fonctionné pour moi
AbsarAkram
107

Pour la version Xampp sous Windows

Ajoutez cette ligne à xampp \ phpmyadmin \ config.inc.php

$cfg['ExecTimeLimit'] = 6000;

Et remplacez xampp \ php \ php.ini par

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

Et changez xampp \ mysql \ bin \ my.ini

max_allowed_packet = 200M
M_R_K
la source
1
J'ai eu exactement les mêmes problèmes, sauf avec un ensemble de données beaucoup plus petit (~ 120k lignes) - votre réponse a définitivement amélioré les choses :).
Rob
J'ai obtenu le délai d'expiration du script pour xampp pour Windows instantanément en appuyant sur Parcourir sur une table ~ 130 Mo
Matthew Lock
$cfg['ExecTimeLimit'] = 6000;Semble malheureusement n'avoir aucun effet sur mon installation. Je préfère le définir localement que dans php.ini qui s'applique à l'ensemble du serveur, mais c'est peut-être la seule option.
Simon East
1
Je ne sais pas ce que tout cela fait, mais vous obtenez mon vote :-)
nawissor
13

J'ai rencontré le même problème lors de l'exécution d'une boucle. J'ai bien compris lorsque j'ai changé les éléments suivants dans le php.inifichier:

max_execution_time = 1000 ;

et aussi

max_input_time = 1000 ;

Votre problème devrait probablement être résolu en apportant les deux modifications ci-dessus et en redémarrant le serveur Apache.

Même après avoir modifié ce qui précède, le problème persiste et si vous pensez que c'est à cause d'une opération de base de données utilisant mysql, vous pouvez essayer de changer cela également:

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

Tout cela devrait être changé dans le fichier php.ini et le serveur Apache devrait être redémarré pour voir les changements.

Sony Mathew
la source
7

Votre changement devrait fonctionner. Cependant, il existe potentiellement peu de fichiers de configuration php.ini avec la pile 'xampp'. Essayez d'identifier s'il existe ou non un php.ini spécifique à 'apache'. Un emplacement potentiel est:

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

Brian
la source
1
sur mon xampp ce fichier dans C:\xampp\php\php.iniet goto ligne numéro 442 (environ - un certain temps ce numéro de ligne sera changé après l'édition manuelle) max_execution_time = 1000 mais cela ne fonctionne pas pour moi. Ensuite, je vais essayer ceci sur C: \ xampp \ phpMyAdmin \ config.inc.php$cfg['Servers'][$i]['bs_temp_blob_timeout'] = 1200;
Elshan
5

En changeant php.ini pour une application Web nécessite le redémarrage d'Apache.

Vous devez vérifier que le changement a eu lieu en exécutant un script PHP qui exécute la fonction phpinfo(). La sortie de cette fonction vous indiquera de nombreux paramètres PHP, y compris la valeur du délai d'expiration.

Vous avez peut-être également changé une copie de ce php.iniqui n'est pas le même fichier utilisé par Apache.

Bill Karwin
la source
5

ini_set('max_execution_time', 0);ou créez le nom du fichier appelé php.iniet entrez la première ligne max_execution_time=0puis enregistrez-le et placez le fichier dans votre dossier racine de votre application.

C'est tout. Bonne chance.

Karthikeyan
la source
3
Il y a une set_time_limit()fonction. Pas besoin d'utiliser (ab) ini_set().
ThiefMaster
3

Eh bien pour l'utilisateur Wamp,

Aller à: wamp\apps\phpmyadmin3.3.9\libraries

À la ligne 536, locate $cfg['ExecTimeLimit'] = 0;

et changez la valeur de 0 à 6000. par ex.

$cfg['ExecTimeLimit'] = 0;

À

$cfg['ExecTimeLimit'] = 6000;

Redémarrez le serveur wamp et ouf.

Cela fonctionne comme par magie!

Olasunkanmi
la source
C'est en fait faux, devrait être l'inverse 0signifie pas de limite de temps d'exécution
user919426
2

Dans php.ini, vous devez vérifier mysql.connect_timeout non plus. C'est responsable de la fermeture du socket et du retour du fichier Fatal. Ainsi, par exemple, changez-le en:

mysql.connect_timeout = 3600

Ce temps sera toujours compté en secondes, donc dans mon exemple, vous avez 1 heure.

Andymnc
la source
2

Ce qui a fonctionné pour moi sur WAMP a été de modifier le fichier: \ Wamp64 \ alias \ phpmyadmin.conf, lignes:

 php_admin_value max_execution_time 600
 php_admin_value max_input_time 600

Je n'ai pas eu à modifier le fichier de la bibliothèque.

Casso
la source
1

Vous utilisez probablement XMAPP en tant que service, pour redémarrer correctement XMAPP, vous devez ouvrir le panneau de configuration XMAPP en décochant les deux mdodules "Svc" par rapport à Apache et MySQL. Cliquez ensuite sur quitter, redémarrez maintenant XMAPP et vous avez terminé.

Jamal
la source
1

«ZERO» pour un temps illimité.

C: \ Apache24 \ htdocs \ phpmyadmin \ bibliothèques \ Config.class.php

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

Vous pouvez également importer le gros fichier directement depuis MySQL sous forme de requête ou de requête PHP.

500 000 lignes m'ont juste pris 18 secondes à importer sur le serveur local, en utilisant cette méthode.

(créez d'abord la table) - puis:

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