Sauvegarde de MySQL sous Linux
Par défaut, les bases de données MySQL des serveurs Linux sont stockées dans le répertoire suivant :
/var/lib/mysql/
Si vous commencez par arrêter le service mysqld, vous pouvez copier vos bases de données dans un répertoire tel que /backup à l'aide de la commande suivante :
cp –Rp /var/lib/mysql/*.* /backup
Le commutateur –R pour le CP command signifie récursif, que vous souhaitez utiliser car chaque base de données se trouve dans un répertoire distinct. Le paramètre –p vaut pour permissions, ce qui permet de conserver les droits des éléments copiés.
En général, vous arrêtez le service mysqld avant d'utiliser la commande ci-dessus. Si une base de données est copiée alors qu'elle est en cours d'utilisation, la sauvegarde est corrompue et inutile. Si vous êtes certain qu'aucune des bases de données n'est utilisée, vous pouvez utiliser la commande précédente.
Commande mysqldump
La commande mysqldump permet de sauvegarder les bases de données individuelles et toutes les bases de données d'un serveur sans avoir à arrêter le service mysqld. Cette possibilité d'effectuer des sauvegardes tout en laissant les bases de données en ligne est la méthode la plus plébiscitée.
Bases de données individuelles
Le code suivant est un exemple de commande que vous utilisez pour sauvegarder une base de données nommée 'exemple' au répertoire /backup
en étant connecté en tant que root :
mysqldump example > /backup/example_backup.sql
Sauf s'il s'agit d'une petite base de données, compressez la sauvegarde de la base de données afin de réduire le temps nécessaire à son transfert. La commande suivante compresse la sauvegarde de l'exemple de base de données :
tar czvf /backup/example_backup.tar.gz /backup./example_backup.sql
Toutes les bases de données
Si vous avez plusieurs bases de données à sauvegarder, la commande suivante sauvegarde toutes les bases de données MySQL de votre serveur dans le répertoire /backup :
mysqldump -A > /backup/databases.sql(or --all-databases)
Le paramètre –A (identique à "-all-databases") prend un cliché de toutes les bases de données sur le serveur.