对于大多数备份操作,mysqlbackup--user
命令使用和
--password
选项
提供的凭据连接到 MySQL 服务器。指定
user
需要一定的权限。您可以创建具有最小权限集的新用户,也可以使用管理帐户(例如 root)。以下是mysqlbackup所需的权限:
mysqlbackup连接到服务器 的 MySQL 用户的最低权限 是:
RELOAD
在所有数据库和表上。CREATE
,INSERT
,DROP
, andUPDATE
在表上mysql.backup_progress
andmysql.backup_history
, alsoSELECT
and ALTER onmysql.backup_history
.SUPER
,以启用和禁用日志记录,并优化锁定以最大程度地减少对数据库处理的中断。REPLICATION CLIENT
, 检索 与备份一起存储 的二进制日志位置。PROCESS
, 处理带有子句的 DDL 语句ALGORITHM = INPLACE
。SELECT
onperformance_schema.replication_group_members
,了解服务器实例是否是组复制设置的一部分,如果是,则收集有关组成员的信息(4.1.2 及更高版本要求)。
要创建一个 MySQL 用户(
mysqlbackup
在本例中)并为用户设置上述权限以从本地主机连接,请从mysql
客户端程序发出如下语句:CREATE USER 'mysqlbackup'@'localhost' IDENTIFIED BY 'password'; GRANT RELOAD, SUPER, PROCESS ON *.* TO 'mysqlbackup'@'localhost'; GRANT CREATE, INSERT, DROP, UPDATE ON mysql.backup_progress TO 'mysqlbackup'@'localhost'; GRANT CREATE, INSERT, SELECT, DROP, UPDATE, ALTER ON mysql.backup_history TO 'mysqlbackup'@'localhost'; GRANT REPLICATION CLIENT ON *.* TO 'mysqlbackup'@'localhost'; GRANT SELECT ON performance_schema.replication_group_members TO 'mysqlbackup'@'localhost';
在从 5.7.22 或更早版本升级且之前已通过 MySQL Enterprise Backup 备份的 MySQL Server 上首次使用 MySQL Enterprise Backup 4.1.2 或更高版本 时,需要以下额外权限 :
CREATE
,INSERT
, 和DROP
上mysql.backup_history_old
。CREATE
,INSERT
,DROP
和ALTER
上mysql.backup_history_new
。
通过在mysql客户端 发出这些示例语句来授予这些权限:
GRANT CREATE, INSERT, DROP ON mysql.backup_history_old TO 'mysqlbackup'@'localhost'; GRANT CREATE, INSERT, DROP, ALTER ON mysql.backup_history_new TO 'mysqlbackup'@'localhost';
笔记如果您正在使用多主组复制设置,请确保在所有主节点上授予这些权限;另请参阅 第 8 章,将 MySQL 企业备份与组复制结合使用。
这些权限用于尝试将
mysql.backup_history
表迁移到更新的格式(有关详细信息,请参阅附录 D,备份历史表更新 ),并且在 MySQL Enterprise Backup 4.1.2 或更高版本的第一次备份操作发生后不再需要它们在服务器上,到那时它们可以被撤销。使用 MySQL Enterprise Backup 的特定功能需要以下额外权限:
使用 可传输表空间 (TTS)备份和恢复 InnoDB 表:
LOCK TABLES
和SELECT
备份表。CREATE
用于恢复表。DROP
用于在由于某些原因恢复失败时删除表。FILE
用于恢复服务器数据目录之外的外部表空间中的表。
-
CREATE
,INSERT
,DROP
, 和UPDATE
在mysql.backup_sbt_history
桌子上
如果您正在使用需要它们的功能,请设置这些额外权限。
mysql
要设置所有这些,请从客户端程序 发出如下语句 :GRANT LOCK TABLES, SELECT, CREATE, DROP, FILE ON *.* TO 'mysqlbackup'@'localhost'; GRANT CREATE, INSERT, DROP, UPDATE ON mysql.backup_sbt_history TO 'mysqlbackup'@'localhost';
有关将 MySQL Enterprise Backup 与 Group Replication 设置一起使用所需的权限,请参阅 第 8 章,将 MySQL Enterprise Backup 与 Group Replication 一起使用。