Sauvegarder ses bases de données est essentiel en cas de crash mais aussi pour être en mesure de fournir à tout moment un dump. N’oubliez pas que vous pouvez retrouver les autres articles databases sur cette page.
Par contre il existe de nombreuses manière de faire. Mysql fait cela très bien et très facilement. Mais parfois on a des besoins particuliers.
Par exemple, comme les restaurations portent souvent sur une seule base, on ne souhaite pas disposer d’un dump complet. D’ailleurs cela peut aussi éviter de se trimbaler des fichiers trop gros ou encore de gérer la confidentialité de données entre clients.
Comment sauvegarder les bases mysql une à une c’est à dire en ayant un fichier par base ?
C’est assez simple avec une petite boucle :
for db in $(mysql -e 'show databases' -s --skip-column-names); do mysqldump $db | gzip > "/backups/mysqldump-$(hostname)-$db-$(date +%Y-%m-%d-%H.%M.%S).gz"; done
Donc :
- on dresse la liste des bases avec un show databases
- on parcourt tout cela avec un for
- pour chaque base on lance un mysqldump
- puis on gzippe chaque fichier généré