如何备份包含所有用户、权限和密码的整个MySQL数据库?

20

我需要备份整个MySQL数据库,其中包含所有用户、权限和密码信息。

我在http://www.igvita.com/2007/10/10/hands-on-mysql-backup-migration/上看到了一些选项, 但是备份MySQL数据库中所有用户、密码、权限和所有数据的选项应该是什么?

只需要完整备份MySQL数据库,以便稍后在另一台机器上导入。


请参阅:http://dev.mysql.com/doc/refman/5.5/en/mysqldump.html - hakre
3个回答

34

最基本的mysqldump命令如下:

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

这将包括mysql数据库,其中包含所有用户/权限表。

在生产系统上运行此命令会有一些缺点,因为它可能会导致锁定。如果您的表足够小,则可能不会有显着影响。您需要先进行测试。

然而,如果您正在运行纯InnoDB环境,则可以使用--single-transaction标志,在单个事务中创建转储(获取它) ,从而防止对数据库的锁定。请注意,有一些极端情况下,由转储运行的初始FLUSH TABLES命令可能会锁定表。如果是这种情况,请终止转储并重新启动。我还建议,如果您将其用于备份目的,请使用--master-data标志,以便从取得转储的二进制日志坐标。这样,如果需要恢复数据,可以先导入转储文件,然后使用mysqlbinlog命令从此转储被取得的位置开始回放二进制日志文件。


12

如果您想传输存储过程和触发器,值得使用

mysqldump --all-databases --routines --triggers

如果您有主/从复制,则可以转储其设置

--dump-slave 和/或 --master-data


0

适用于每日备份所有数据库的一行代码:

mysqldump -u root -pVeryStrongPassword --all-databases | gzip -9 > ./DBBackup.$(date +"%d.%m.%Y").sql.gz

如果将其放入cron中,它将每天创建格式为DBBackup.09.07.2022.sql.gz的文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接