===== Comment faire une sauvegarde de base de données sur MySQL ===== {{:systeme:mysql.png?nolink&200 |}}Si vous utilisez un serveur MySQL avec des informations essentielles, vous pouvez sauvegarder ses bases de données périodiquement.\\ Un outil en ligne de commande Linux appelé mysqldump vous permet de sauvegarder les bases de données MySQL sans avoir besoin d'arrêter un serveur MySQL.\\ mysqldump génère en sortie un fichier texte contenant une série de commandes MySQL qui représentent un instantané actuel des bases de données MySQL en cours de sauvegarde.\\ Le fichier de sortie de mysqldump peut facilement être comprimé ou crypté au besoin.\\ Dans ce tutoriel, je vais décrire comment sauvegarder un serveur MySQL avec mysqldump.\\ ~~READMORE~~ Le programme de mysqldump est contenue dans le paquet du client MySQL.\\ Donc, vous aurez besoin d'installer le paquet du client MySQL. sous Debian ou linux type Debian aptitude install mysql-client sous RedHat ou linux type RedHat yum install mysql Afin de générer un instantané en ligne pour un serveur MySQL, vous devez empêcher toute mise à jour de ses bases de données pendant la sauvegarde est en cours de traitement. \\ Cela dépend du moteur de stockage que vous utilisez pour les tables à l'intérieur MySQL.\\ Donc d'abord savoir quel moteur de stockage (par exemple, MyISAM, InnoDB) que vous utilisez.\\ ==== Sauvegarde des bases de données InnoDB ==== Si toutes vos tables MySQL utilisent InnoDB, vous pouvez utiliser l'option "--single transaction" avec mysqldump pour faire une sauvegarde en ligne: mysqldump -h[server-ip-address] -u[username] -p[password] --all-databases --single-transaction > backup.sql Notez que dans la commande mysqldump ci-dessus, il n'y a pas d'espace entre les options (par exemple, -h, -u, -p), si vous ne voulez pas sauvegarder toutes les bases, il vous suffit d'enlever ''--all-databases'' et de préciser votre base à sauvegarder. ==== MyISAM ou InnoDB sauvegarde des bases de données MyISAM ==== La commande ci-dessus, cependant, ne fonctionne pas si vous utilisez des tables MyISAM ou un mélange de tables InnoDB/MyISAM.\\ Dans ce cas, vous devez verrouiller explicitement toutes les tables pendant que la sauvegarde se fait comme suit. mysql> flush tables with read lock; La déclaration flush MySQL dans la commande ci-dessus ferme toutes les tables ouvertes dans le serveur MySQL et obtient des verrous en lecture à toutes les tables de toutes les bases de données existantes, empêchant ainsi toute écriture aux bases de données.\\ Cela garantit une image cohérente d'un système de roulement. Maintenant procéder à la sauvegarde. mysqldump -h[server-ip-address] -u[username] -p[password] --all-databases > backup.sql Enfin, relâchez le verrou global pour les bases de données. mysql> unlock tables; Source: [[http://xmodulo.com/how-to-backup-mysql-server.html|xmodulo.com]]