FIFO Informatique
http://www.fifo.fr/fifo

Accueil > Infos MySQL  > Sauvegarde de MySQL
 

Sauvegarde de MySQL

Il y a plusieurs moyens de sauvegarder une base mysql. La plus courante est certainement l’utilisation de mysqldump (fourni avec mysql).

Comme d’habitude, on trouve tout ce qu’il faut savoir sur mysqldump avec

$ man mysqldump

Mais, pour résumer, pour sauvegarder la totalité de la base de données :

$ mysqldump —all-databases -u root -pmotdepasserootmysql

(Vous n’êtes pas obligé de taper le mot de passe sur la ligne de commande. Le cas échéant, mysqldump va vous le demander)

Bon par contre, toutes ces requêtes SQL qui s’affichent à l’écran, c’est pas très pratique. Il suffit donc de rediriger la sortie standard vers un fichier. Et puis pendant qu’on y est, on le compresse à la volée :

$ mysqldump —all-databases -u root -pmotdepasserootmysql | gzip > /home/backup/backup.sql.gz

Ca commence à être pas mal.

Maintenant que ça marche, on va dater le fichier :

$ mysqldump —all-databases -u root -pmotdepasserootmysql | gzip > /home/backup/backup-$(date -I).sql.gz

Il n’y a plus qu’à recopier le fichier de dump en lieu sur.

Attention ...

Les fichiers créés risquent de grossir vite. Pensez à nettoyer le repertoire de backup.

La ligne suivante efface tous les fichiers de backup vieux de plus d’une semaine.

Pensez à rajouter quelque chose de ce style dans votre crontab.

find /home/backup/backup*.gz -mtime +7 -exec rm -f \ ;

Pour restaurer ? Il faut prendre le fichier de sauvegarde le plus récent, et le réimporter dans mysql :

$ mysql < backup.sql