【问题标题】:How to backup whole MySQL database with all users and permissions and passwords?如何使用所有用户、权限和密码备份整个 MySQL 数据库?
【发布时间】:2011-10-21 10:32:15
【问题描述】:

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

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

只是 MySQL 的完整备份,以便稍后在另一台机器上导入。

【问题讨论】:

标签: mysql mysqldump


【解决方案1】:

最基本的,你可以使用的mysqldump命令是:

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

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

在生产系统上运行它有一些缺点,因为它可能导致锁定。如果您的表足够小,它可能不会产生重大影响。您将需要先对其进行测试。

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

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-20
      • 1970-01-01
      • 1970-01-01
      • 2011-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多