J'ai récemment changer de PC, il m'a fallu exporter mes bases de données (depuis phpMyAdmin) dans un fichier texte (.sql).
Au moment de l'importation avec PhpMyAdmin j'ai eu un message d'erreur de la part du serveur Apache :
Fatal error: Maximum execution time of 300 seconds exceeded
Mes bases de données sont trop volumineuses pour les importer via phpMyAdmin (plus de 5 mo) en HTTP.
J'ai eu beau modifier tous les fichiers de configuration (php.ini, etc.), il a du rester un endroit où le temps maximal d'exécution n'a pas été modifié...
La solution la plus simple pour faire de l'import massif reste la console mysql. Voici comment importer une telle configuration sur une plateforme Windows :
- Copiez votre fichier .sql (localhost.sql dans mon cas) dans le répertoire contenant mysql.exe (pour ma part : C:\wamp\bin\mysql\mysql5.0.51b\bin)
- Ouvrez une fenêtre DOS (Touche Windows + R > CMD [OK])
- Déplacez vous en ligne de commande dans le répertoire de mysql.exe (cd C:\wamp\bin\mysql\mysql5.0.51b\bin dans mon cas)
- Puis lancez l'importation du fichier : mysql -u root -p VotrePassword NOM_BDD < localhost.sql ("root" étant à remplacer par le nom d'utilisateur de votre base de donnée s'il diffère)
- L'invite vous demande votre mot de passe ("Enter password:")
- Si aucun message d'erreur n'est apparu, l'importation est terminée 🙂 Dans le cas contraire, des erreurs explicites vous indiqueront ce qui cloche (ce sont les mêmes erreurs que vous auriez eu avec phpMyAdmin puisque c'est le moteur MySQL qui les génère).
Si vous avez des erreurs du style "Can't create database 'toto'; database exists" vous pouvez utiliser phpMyAdmin pour pallier à la situation (supprimez la table qui existe déjà dans ce cas précis).
Vous pouvez également utiliser mysqlimport.exe présent dans le même répertoire que mysql.exe, cela peut vous être utile dans des scripts batch par exemple.
Pour importer rapidement une base gzippée sous Linux (source) :
gunzip -c /chemin/base.sql.gz | mysql -h hostname -u utilisateur -p nom_de_la_base
Je vous rappelle que WAMP n'est pas destiné à être utilisé en production. Il doit être employé à des fins de tests en pré-production par exemple.
Note : avez-vous reconnu le logo de phpMyAdmin façon "naturelle" en haut de ce billet :p ?
Télécharger WAMP - Télécharger phpMyAdmin
Auteur : Mr Xhark
Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter
16 commentaires
Bon article 🙂
Il est juste utile de préciser que cette manipulation ne fonctionne que si l'export a été réalisé en incluant les commandes de création de tables (lors d'un export de plusieurs tables par exemple).
Dans le cas ou vous réalisez un export de table unique (depuis PHPMyAdmin par exemple), le dump (le fichier .sql) ne comporte ni les instructions de création (CREATE TABLE) ni d'utilisation (USE),
Il est donc nécessaire, dans ce cas, d'ajouter le nom de la base dans laquelle vous souhaitez "exécuter" votre dump.
mysql [nom_de_la_base] -u root -p < ../chemin/dump.sql Exporter l'ensemble des bases mysqldump --all-databases -u root -p > ../chemin/dump.sql L'export via la ligne de commande assure la qualité de votre sauvegarde. Pour ma part, je n'accorde que très peu confiance à l'intégrité des données d'un dump (notamment ceux compressés en gz) provenant de PHPMyAdmin, lorsque les bases atteignent une centaine de Mo.
Merci pour la précision 🙂
phpMyAdmin m'horripile avec la conversion UTF-8 qui cause bien des dommages suivant l'encodage des tables/bases ainsi que celui du navigateur.
Mieux vaut effectivement traiter à la source.
[...] PhpMyAdmin : export des bases de données (éventuellement via ligne de commande) [...]
[...] PhpMyAdmin : export des bases de données (éventuellement via ligne de commande) [...]
Bonjour et merci pour votre tuto
Heureusement que des personnes intelligentes existent pour aider les autres.
C'est dommage que je n'y comprends rien
Je suis arrivé jusque là
mysql abcscolaire -u root -p <abcscolaire.sql
on me demande le password
host localhost is not allowed to connect to this Mysql server
Mes données sont les suivantes
server host : localhost
username : root
mtp: pas de mot de passe
Port 3306
Pouvez vous m'aider
merci
Cela signifie qu'il y a un souci au niveau de des droits d'authentification sur ton utilisateur
Bonjour
cela fonctionne
merci
normalement dans le fichier php.ini on mets:
max_execution_time = 0
et dans le repertoire phpmyadmin on remplace:
$cfg['ExecTimeLimit'] = 300;
par $cfg['ExecTimeLimit'] = 0; (illimité ou autre)
@Devis : c'est la deuxième valeur que je zappe souvent !
Merci pour ce tutorial.
Mon wamp n'est pas sur le disque principal, il faut donc taper lettre disque + : ce qui donne d: pour être au bon endroit.
Merci beaucoup pour ce tuto. Cela faisait 3 mois que j'essayai de rentrer une bdd de 250MO sur mon serveur Wamp sans succès. Vous êtes mon sauveur. Merci
@Michael:
Merci beaucoup pour ce petit tuto, et merci aussi à Mr Xhark - @xhark pour la précision au niveau de l'indexation du nom de la BDD.
j'ai put importer une base de 500 MO facilement.
Thanks, since i am working at http://univ-ouargla.dz and we have many local server worked by Mysql. thanks
[…] Importer une base SQL en console (WAMP) (modifié le 18 mai 2013 à 14:10) J'ai récemment changer de PC, il m'a fallu exporter mes bases de données (depuis phpMyAdmin) dans un fichier texte (.sql). Au moment de l'importation avec PhpMyAdmin j'ai eu un message d'erreur de la part du serveur Apache : Fatal error: Maximum execution time of 300 seconds exceeded Mes bases de données sont trop volumineuses pour les importer via phpMyAdmin (plus de 5 mo) en HTTP. […]
[…] Si vous utilisez WAMP vous pouvez suivre ce tutoriel pour importer une base SQL en console. […]
[…] Il nous reste à importer toutes les données de la base contenues dans le fichier d'export sql sur notre nouveau serveur. J'avais par ailleurs déjà abordé ce thème lors d'un précédent billet. […]