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 :
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 veut 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.
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.