Der einfachste mysqldump-Befehl, den Sie verwenden können, ist:
mysqldump -u$user -p$pass -S $socket --all-databases > db_backup.sql
Das schließt die mysql-Datenbank ein, die alle users/privs-Tabellen enthält.
Es gibt Nachteile, dies auf einem Produktionssystem auszuführen, da es zu Sperren führen kann. Wenn Ihre Tabellen klein genug sind, hat dies möglicherweise keine signifikanten Auswirkungen. Sie werden es zuerst testen wollen.
Wenn Sie jedoch eine reine InnoDB-Umgebung ausführen, können Sie die --single-transaction
verwenden Flag, das den Dump in einer einzigen Transaktion erstellt (get it) und so das Sperren der Datenbank verhindert. Beachten Sie, dass es Ausnahmefälle gibt, in denen die anfänglichen FLUSH TABLES
Der vom Dump ausgeführte Befehl kann die Tabellen sperren. Wenn dies der Fall ist, beenden Sie den Dump und starten Sie ihn neu. Ich würde auch empfehlen, dass Sie, wenn Sie dies für Sicherungszwecke verwenden, den --master-data
verwenden -Flag, um die Binärlogkoordinaten zu erhalten, von denen der Dump genommen wurde. Auf diese Weise können Sie bei einer Wiederherstellung die Dump-Datei importieren und dann mysqlbinlog
verwenden Befehl zum Wiedergeben der binären Protokolldateien ab der Position, an der dieser Speicherauszug erstellt wurde.