Pour faire des backups ou pour déplacer une base de donnée, l’outil mysqldump est très utile. Nous allons donc voir comment l’utiliser depuis votre terminal.
Installation de mysqldump
Pour commencer il faut installer mysqldump comme ceci sous Linux :
sudo apt-get install mysqldump
Exporter des données depuis MySQL
Il existe plusieurs méthodes pour exporter des données suivant ce que l’ont souhaite sauvegarder et il y a quelques options très utiles comme nous allons le voir.
Exporter une base de données complète
Pour exporter la base de donnée « maBase », utilisez la commande :
mysqldump -u root -p maBase > maBase_backup.sql
Ceci fera l’export dans un fichier « maBase_backup.sql ».
Exporter une table dans une base de données
Pour exporter une table (par exemple ma_table ) appartenant à une base des données (par exemple maBase) :
mysqldump -u root -p maBase ma_table > ma_table.sql
Ainsi nous aurons une exportation seulement de la table ma_table sans toucher à d’autres tables de la base des données « maBase ».
Exporter toutes les bases de données du serveur
Pour exporter toutes les bases de données il faut utiliser la commande suivante :
mysqldump -u root -p --all-databases --single-transaction > dump.sql
Le paramètre –single-transaction permet d’exporter les bases de données en InnoDB en minimisant les blocages (cas d’une dump à chaud).
Exporter des données encodé en UTF-8
Lors de l’exportation de vos bases il faut impérativement ajouter l’option –default-character-set=utf8 si vos données sont encodé en UTF8.
Compatibilité avec les vieilles versions de MySQL
Lorsque vous exportez les données d’une base de données MySQL très ancienne (version 4) mettez l’option –compatible=mysql40 pour éviter des problèmes de compatibilité avec les bases de données plus récentes.
mysqldump -u root -p --all-databases --compatible=mysql40 > dump.sql
Importation des données dans MySQL
Pour importer une base de données ou une sauvegarde sur « maBase », utilisez la commande :
mysql -u root -p maBase < maBase_backup.sql
Le paramètre -u précise l’utilisateur avec lequel on veut se connecter et -p signifie qu’il faut un mot de passe pour se connecter avec cet utilisateur.
bonjour et merci pour ce Tuto Bien util pour le newbie que je suis.
Mysql accepte la meme syntaxe en mode commande
et c’est tres rapide
quand tu lis « volumineuse » pour 23Mo 😆
Bonjour
Je suis surpris de voir que quelqu’un parle que ce n’est que pour Linux, non ces lignes de commande fonctionne aussi sous windaub.
Bon tuto
et pour Eugene oui il n’y a pas que Linux , mais sous windows il existe déjà bon nombres de tuto et mème de logiciels fesant la même chose
Vous auriez dû mettre dans le titre qu’il s’agit de Linux! Sur Windows ce n’est pas pareille, et il n’y a pas que Linux dans ce monde.
Pas mal le tuto 🙂
Merci à Romain pour ses précieux conseils pour ré-importer les données d’une base volumineuse (23Mo) (suite à un crash)et écrite sous OpenOffice 4.1.1 et exportée et sauvegardée en .sql via xampp.
Vous me forwardez un message si vous êtes dans mon cas et si vous rencontrez des petits pb