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é.