Nous allons voir comment effectuer une sauvegarde des bases de données MySQL via l’utilitaire mysqldump. Les sauvegardes complètes de VM ne prennent pas forcément en compte vos bases de données, et la restauration de vos machines peut alors être très incertaine, le dump est alors nécessaire. Il peut aussi être utilisé pour la migration de votre base de données, car c’est un export complet des informations de la BDD.

Sécurité
On commence par créer le fichier « .my.cnf ».
touch .my.cnf
Ensuite, on lui attribue des droits spécifiques afin qu’il ne soit accessible qu’en « root ».
chmod 600 .my.cnf
Puis, on édite le fichier « .my.cnf ».
vi .my.cnf
Dans celui-ci, on indique l’utilisateur qui sera appelé par la commande « mysqldump ».
[mysqldump] user=root password=MyPa33w0rd
Sauvegarde
À présent, on crée le script de sauvegarde « savedb.sh ». On indique que l’on sauvegarde toutes les bases de données.
#!/bin/bash mysqldump --all-databases > all_db.sql
Si l’on veut choisir les bases que l’on souhaite sauvegarder, il faudra utiliser l’argument « –databases » suivi des noms des bases.
#!/bin/bash mysqldump --databases db1 db2 db3 > all_db.sql
Rotation sauvegardes
Afin de mettre en place une rotation des logs, on peut utiliser la commande « savelog » avec une durée de 7 jours de rétention.
#!/bin/bash savelog -n -c 7 all_db.sql mysqldump --all-databases > all_db.sql
Compression
Enfin, si vous travaillez sur de grosses bases, il est essentiel de compresser vos sauvegardes :
#!/bin/bash mysqldump --all-databases > all_db.sql | gzip -9 /backup/all_db.sql.gz
ADD-DROP-DATABASE
Un argument est souvent utilisé, c’est le « –add-drop-database », il permet dans le cas d’une restauration, de s’assurer, avant réinjection, qu’aucune table ne porte le même nom. Si vous l’utilisez dans le cadre d’une restauration sur une nouvelle base, cet argument est inutile, mais ne gênera en rien votre restauration.
Autres commandes
Pour aller plus loin, rendez-vous sur le lien suivant :
https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html
Désormais vous maîtrisez les bases pour effectuer la sauvegarde de vos bases de données MySQL via mysqldump.