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

Dak*_*aka 13 mysql mysqldump

我需要使用有关所有用户及其权限和密码的信息备份整个MySQL数据库.

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

只是MySQL的完整备份,所以我可以稍后在另一台机器上导入.

des*_*gns 28

在最基本的情况下,您可以使用的mysqldump命令是:

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

这将包括mysql数据库,它将包含所有users/privs表.

在生产系统上运行它有一些缺点,因为它可能导致锁定.如果您的表格足够小,可能不会产生重大影响.你会想先测试一下.

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


小智 6

如果您还要传输存储过程和触发器,则可能值得使用

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

如果您有主/从复制,您可以转储他们的设置

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