Backuper et remonter (simplement) une base MySQL via le Terminal
Publié le 28 January 2009, par Babozor dans la catégorie Administration serveur, Développement, OutilsJe suis sûr que la plupart d’entre vous savent le faire, mais voici deux petites commandes qui je suis sûr (aussi) risquent d’en aider plus d’un…
Pour ça vous avez besoin de:
- un accès SSH vers le serveur en question (à voir avec votre admin préféré)
- un logiciel SSH (Putty pour Windows ou Terminal pour Mac/Linux)
- un accès et les droits suffisant vers la base MySQL
Backuper sa base simplement
commande super simple:
mysqldump –user=xxx –password=yyy nom_demabase > nomdemonfichiersql.sql
Et voilà… votre base nom_demabase est backupée sur le fichier nomdemonfichiersql.sql
Pour plus d’infos ou des trucs bizarres et autres options, vous pouvez aller regarder la doc de mysqldump
Remonter sa base simplement
commande encore plus simple
mysql –user=xxx –password=yyy nom_demabase < nomdemonfichiersql.sql
Et voilà… votre base nom_demabase a été chargée avec le contenu de nomdemonfichiersql.sql
Attention après un dump classique (comme vu plus haut), le fichier drop la table, re-créait la structure et ré-insère les données, donc attention aux pertes de données…
Bon voilà, deux commandes simples, que tout le monde doit (ou devrait connaître)


le 28 January 2009 à 11h34
Le mode verbose (-v) est bien pratique aussi.
Quelques options interessantes pour la gestion des vérifications de contraintes d’intégrité, un mode Quick Insert parfois utile.
Attention aux triggers avec MySQL < 5.0.3 (si j’ai bonne mémoire !)
le 28 January 2009 à 16h46
Pour des questions de sécurité, je pense qu’il ne faut pas mettre le mot de passe en clair dans la ligne de commande (~/.bash_history n’est pas le meilleur endroit pour planquer ses mots de passe)
Il suffit de mettre –password tout court pour régler le problème.
il faut entrer le mot de passe ensuite, sans que ce dernier ne soit stocké nulle part.
Pour automatiser le bidule, il reste nécessaire d’inclure le mot de passe dans la ligne de commande, à ce moment là le mieux est de stocker le mot de passe dans un fichier vous appartenant avec mod 600.
Petit trick très bon à savoir, et qui prend tout son sens quand il est croné
le 28 January 2009 à 16h53
On peut aussi faire
mysql –user=xxx –password nom_demabase < nomdemonfichiersql.sql
Il demande le mot de passe lorsqu’on presse la touche entrée. Ça évite de tomber dessus en remontant dans l’historique des commandes, ou de faire de mauvaises manips et d’écraser une base existante.