Guide pratique pour sauvegarder et restaurer vos bases de données MySQL
Les bases de données MySQL figurent parmi les systèmes de gestion de bases de données relationnelles (SGBD-R) les plus répandus. Leur popularité s’explique par leur facilité d’installation, leur robustesse et leur compatibilité avec les technologies web modernes.
Dans cet article, nous vous présentons un guide complet pour :
- sauvegarder vos bases de données,
- sécuriser vos informations,
- restaurer vos bases en cas de problème.
Sauvegarder vos bases de données MySQL
Sauvegarder UNE seule base de donnée
Utilisez la commande suivante pour sauvegarder une base de données dans un fichier dump SQL :
Sauvegarder PLUSIEURS bases de données
Pour sauvegarder plusieurs bases de données, ajoutez leurs noms à la commande :
mysqldump -u <username> -p --databases <bdd_1> <bdd_2> > dump.sql
Sauvegarder TOUTES vos bases de données
Si vous souhaitez sauvegarder toutes les bases de données de votre serveur:
mysqldump -u root -p --all-databases > all_databases.sql
Options courantes pour optimiser vos sauvegardes
Certaines options peuvent être utiles pour adapter vos sauvegardes à vos besoins spécifiques :
--triggers
: Inclut les triggers (déclencheurs) dans le dump.--single-transaction
: Évite le verrouillage des tables lors de la sauvegarde. Idéal pour de grosses bases de données.--routines
: Sauvegarde les routines (procédures stockées et fonctions).
Restaurer vos bases de données MySQL
En cas de perte ou de corruption, voici comment restaurer vos bases de données à partir d’un fichier dump.
Réinstaller MySQL (facultatif)
Si votre serveur MySQL a été supprimé ou corrompu, réinstallez-le avec :
apt install mysql-server
Recréer vos utilisateurs et privilèges
Maintenant votre base de données réinstallée, vous devez recréer vos bases de données, vos utilisateurs et leur accorder des privilèges.
- Ouvrez un terminal mysql
sudo mysql -u root
mysql
- Créez votre base de donnée
CREATE DATABASE `ma_base_de_donnee`;
- Créez un nouvel utilisateur
CREATE USER 'nouveau_utilisateur'@'localhost' IDENTIFIED BY 'mot_de_passe';
- Accordez des privilèges à cet utilisateur
Pour toutes les bases de données :
GRANT ALL PRIVILEGES ON * . * TO 'nouveau_utilisateur'@'localhost';
Pour une base de données spécifique :
GRANT ALL PRIVILEGES ON <base_de_donnee> . * TO 'nouveau_utilisateur'@'localhost';
- Forcez l'application immédiate des privilèges
FLUSH PRIVILEGES;
Restaurer vos bases de données
Utilisez la commande suivante pour restaurer une base de données à partir d’un fichier dump :
mysql -u <utilisateur> -p <nom_base_de_donnée> < dump.sql
MySQL Cheatsheet: commandes utiles pour la gestion de bases de données
Afficher les privilèges d’un utilisateur
SHOW GRANTS FOR 'nom_utilisateur'@'localhost';
Lister les utilisateurs MySQL
SELECT user,host FROM mysql.user;
Lister vos bases de donnés MySQL
SHOW DATABASES;
Afficher les utilisateurs connectés
SELECT current_user();
Supprimer un utilisateur MySQL
DROP USER ‘nom_utilisateur’@‘localhost’;
Supprimer des privilèges utilisateur
REVOKE ALL PRIVILEGES ON *.* FROM 'nom_utilisateur'@'localhost';