133 votes

Temps d'exécution maximum dans phpMyadmin

Lorsque j'essaie d'exécuter (certaines) requêtes dans phpMyadmin, j'obtiens l'erreur suivante

Erreur fatale : Temps d'exécution maximum de 60 secondes e C:\xampp\phpmyadmin\libraries\dbi\mysql.dbi.lib.php à la ligne 140

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

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

et j'ai changé la valeur de "max execution time" de 60 à 1000 puis j'ai redémarré le PHP et j'ai toujours la même erreur.

Une solution ?

5voto

Bill Karwin Points 204877

Changer php.ini pour une application web nécessite le redémarrage d'Apache.

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

Vous avez peut-être également modifié une copie de php.ini qui n'est pas le même fichier que celui utilisé par Apache.

4voto

Casso Points 129

Ce qui a fonctionné pour moi sur WAMP, c'est la modification du 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.

3voto

Bien pour l'utilisateur de Wamp,

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

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

et modifiez la valeur de 0 à 6000, par exemple

$cfg['ExecTimeLimit'] = 0;

Pour

$cfg['ExecTimeLimit'] = 6000;

Redémarrage du serveur wamp et phew.

Cela fonctionne comme par magie !

2voto

ZERO" pour une durée illimitée.

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

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

Vous pouvez également importer le fichier volumineux directement à partir de MySQL sous forme de requête ou de requête PHP.

L'importation de 500 000 lignes sur le serveur local m'a pris 18 secondes, en utilisant cette méthode.

(créer d'abord une table) - puis :

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

2voto

andymnc Points 53

Dans le php.ini, vous devez également vérifier mysql.connect_timeout. C'est lui qui est responsable de la fermeture de la socket et qui renvoie le Fatal. Donc, par exemple, changez-le en :

mysql.connect_timeout = 3600

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X