Voila une petite astuce que j’ai découverte récemment alors que je voulais importer un gros fichier bourré de requêtes SQL dans une base de donnée mysql.
Je devais importer 18Mo de requêtes et en passant par le navigateur web avec phpmyadmin ça ne fonctionnait pas à cause des timeout du serveur web. (30 secondes en général)
L’astuce consiste à uploader (par ftp par exemple) sur le serveur web le fichier qui contient les requêtes SQL (dump.sql) et appeler un petit scripte qui va simuler une commande shell :
<?php system("/usr/bin/mysql -uLOGIN -pPASSWORD -hHOSTNAME BDDNAME < dump.sql", $fp); ?>
(il faut bien entendu remplacer LOGIN, PASSWORD, HOSTNAME et BDDNAME par vos paramètres.)
Discussion
…et que "SYSTEM" soit autorisé sur le serveur en question