8795 sujets

Développement web côté serveur, CMS

Bonjour,

Je réinstalle mon site en local sur un nouveau poste avec vertrigo et phpmysql,

PB : quand j'importe ma base mysql phpmysql me retourne l'erreur :
Fatal error: Maximum execution time of 300 seconds exceeded

je vous précise que j'ai réglé le timeout du php.ini à 1800 secondes :


;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;

max_execution_time =1800     
; Maximum execution time of each script, in seconds
max_input_time =1800	
; Maximum amount of time each script may spend parsing request data
memory_limit =850M      
; Maximum amount of memory a script may consume (8MB)


je n'arrive pas à trouver le réglage pour supprimer ce bridage

(précision, non, je ne veux pas couper mon fichier en 100 morceaux pour pouvoir l'importer)

Merci de votre aide,

Cezig
Je me réponds moi-même, car si j'en crois les nombreux posts que j'ai trouvé sur ce sujet sans réponse dans les différents forums, cette info doit en intéresser plus d'un :

Pour modifier le temps limit d'éxécution de phpmyadmin, il faut aller dans :
Phpmyadmin\libraries\config.default.php et trouver la ligne :

$cfg['ExecTimeLimit'] = 300;

(ligne 392 dans ma version)

En remplaçant 300 par 1800 (ou plus) on augmente la durée maximale en seconde autoriser pour exécuter un script, ce qui permet d'importer des fichiers beaucoup plus gros.

ouf !
- En mettant 0 -> pas de limite (pour phpMyAdmin ...)
- pour les grosses bases : mysqldumper !?
Salut,

Pour répondre à ton problème initial, normalement un
set_time_limit(0);
devrait corriger le tir.

Cependant, au lieu d'essayer de contourner le problème en exécutant plus longuement des scripts, il aurait été plus intéressant de trouver le moyen de réduire le temps d'exécution de tes scripts.

L'importation de données au format CSV est très long et très coûteux en terme de mémoire. Il existe des syntaxes comme LOAD DATA INFILE en MySQL qui te permettent d'importer des centaines de milliers de lignes en quelques secondes.