Sauvegarder et restaurer une base de donnée MySQL

Un article de Assistance Oxyd.

Sauvegarder les bases

Sauvegarder une base spécifique:

mysqldump -u login_sql -p mabase > mabase.backup.sql


Pour sauvegarder uniquement une table spécifique, faites suivre le nom de la base de données du nom de la table. La commande suivante n’extrait que la structure et les données de la table users dans la base de données mabase


mysqldump -u login_sql -p mabase users > users_mabase.backup.sql


Pour exporter toutes les bases de données du système, utilisez le raccourci —all-databases :


mysqldump -u login_sql -p --all-databases > backup.sql


Remarque : si vous utilisez l’option —all-databases, le résultat SQL de mysqldump contient une instruction CREATE DATABASE pour initialiser chaque base de données. Il est ainsi plus facile de restaurer l’intégralité des bases de données en une fois (comme vous le verrez ci-après).

Si vous voulez que la sauvegarde ne contienne que la structure de la table, utilisez l’option —no-data :


mysqldump -u login_sql -p --no-data mabase > mabase.sql


C'est extrêmement utile si vous avez besoin de créer une copie vierge d'une base de données; par exemple, lorsque vous installez une application et devez initialiser un ensemble de tables sans aucun enregistrement. Vous pouvez également faire l'inverse: sauvegarder uniquement les données, sans la structure de la table:


mysqldump -u login_sql -p --no-create-info mabase > mabase.sql


Restaurer les bases

Maintenant que nous savons comment sauvegarder nos données, nous devons voir comment restaurer une sauvegarde. Restaurer des tables MYSQL à partir de fichiers de sauvegarde texte

La sauvegarde de vos bases de données et tables ne représente que la moitié du processus. L’autre facette consiste à savoir comment les restaurer en cas de panne. Heureusement, cette procédure est très simple avec MYSQL. Comme le résultat de mysqldump est une série d’instructions SQL, il peut être simplement redirigé vers un client MYSQL pour recréer la structure de la base de données d’origine et son contenu.

En supposant que vous ayez sauvegardé toutes vos bases de données dans un fichier nommé mabase.backup.sql avec la commande mysqldump —all-databases, vous pouvez les restaurer à l’aide de la commande suivante :


mysql -u login_sql -p < mabase.backup.sql


Si vous n’avez pas utilisé l’option —all-databases mais avez sauvegardé de façon sélective une ou plusieurs tables ou bases de données, vous devez indiquer à MYSQL dans quelle base les placer lorsque vous les restaurez. Pour ce faire, il faut ajouter l’option -D à la ligne de commande précédente. L’exemple suivant restaure les tables du fichier user_mabase.backup.sql dans la base de données appelée mabase :


mysql -u login_sql -p -D mabase < user_mabase.backup.sql