Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment sauvegarder toute la base de données MySQL avec tous les utilisateurs, autorisations et mots de passe ?

Au plus simple, la commande mysqldump que vous pouvez utiliser est :

mysqldump -u$user -p$pass -S $socket --all-databases > db_backup.sql

Cela inclura la base de données mysql, qui contiendra toutes les tables users/privs.

Il y a des inconvénients à l'exécuter sur un système de production car cela peut provoquer un blocage. Si vos tables sont suffisamment petites, cela peut ne pas avoir d'impact significatif. Vous voudrez d'abord le tester.

Cependant, si vous exécutez un environnement InnoDB pur, vous pouvez utiliser le --single-transaction flag qui créera le dump en une seule transaction (get it) empêchant ainsi le verrouillage sur la base de données. Notez qu'il existe des cas extrêmes où les FLUSH TABLES initiaux La commande exécutée par le dump peut verrouiller les tables. Si tel est le cas, tuez le vidage et redémarrez-le. Je recommanderais également que si vous l'utilisez à des fins de sauvegarde, utilisez le --master-data flag également pour obtenir les coordonnées binaires du journal d'où le vidage a été effectué. De cette façon, si vous avez besoin de restaurer, vous pouvez importer le fichier de vidage puis utiliser le mysqlbinlog commande pour relire les fichiers journaux binaires à partir de la position où ce vidage a été effectué.