mysqldump -uUTILISATEUR -pMOTDEPASSE -e --single-transaction --opt BASEDEDONNEES > backup-'date +%y%m%d'.sql
Pour sauvegarder toutes les bases d'un seul coup :
mysqldump -uUTILISATEUR -pMOTDEPASSE --all-databases > backup-'date +%y%m%d'.sql
Il existe aussi d'autres options :
* --no-data : permet de générer un fichir qui contient toutes les instructions de création des tables de votre base (CREATE DATABASE, CREATE TABLE...), mais pas les données elles-mêmes.
* --no-createdb et --no-create-info permettent de commenter automatiquement les instructions de création permettant d'insérer des données depuis une sauvegarde dans une base avec des tables qui existent déjà.
* --lock-tables : permet de poser un LOCK sur toute une base. On obtient alors une cohérence entre les tables, mais pas entre les bases.
* --lock-all-tables : permet de poser un LOCK sur toutes les bases. Soyez conscient des impacts d'un tel LOCK sur une grosse base de données non transactionnel comme MyISAM. La mise en attente de toutes les requêtes pendant la durée de la sauvegarde pourraient faire croire au visiteurs que le serveur du site a planté. A la fin du dump, toutes les requêtes en attente seront exécutées (pas de pertes, sauf si la longueur de la queue a été dépassée).
* -e : permet de cumuler les création d'éléments de même type (va donc plus vite à la réimportation
* --single-transaction : permet de lancer les sauvegardes dans une transaction. Elle garantit donc que les tables InnoDB (moteur transactionnel) seront dans un état cohérent entre elles. Les tables qui ne supportent pas les transactions seront également sauvegardées, mais la cohérence ne sera pas garantie (l'instruction BEGIN est simplement ignorée pour ces tables). L'avantage de cette option est la non utilisation d'un LOCK. En faite, elles seront lockées à l'intérieur de la transaction, sans empêcher les autres clients de faire des modifications de la base.
* --master-data : permet d'avoir les position du master pour la réplication directement dans le dump.
* --opt : ajoute les drop-tables si elles existent.