文档首页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
信息 (Gzip) - 4.0Mb
信息 (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  ...  /  组复制通道的权限检查

19.3.3.2 组复制通道的权限检查

您还可以使用 PRIVILEGE_CHECKS_USER 帐户来保护组复制使用的两个复制应用线程。每个组成员上的 group_replication_applier 线程用于应用组事务,每个组成员上的 group_replication_recovery 线程用于在成员加入或重新加入组时从二进制日志进行状态传输,作为分布式恢复的一部分。

要保护其中一个线程,请停止组复制,然后使用带有 PRIVILEGE_CHECKS_USER 选项的 CHANGE REPLICATION SOURCE TO 语句,将 group_replication_appliergroup_replication_recovery 指定为通道名称。例如

mysql> STOP GROUP_REPLICATION;
mysql> CHANGE REPLICATION SOURCE TO PRIVILEGE_CHECKS_USER = 'gr_repl'@'%.example.com' 
          FOR CHANNEL 'group_replication_recovery';
mysql> FLUSH PRIVILEGES;
mysql> START GROUP_REPLICATION;

对于组复制通道,在创建通道时会自动启用 REQUIRE_ROW_FORMAT 设置,并且无法禁用,因此您无需指定它。

组复制要求要由组复制的每个表都具有定义的主键,或者主键等效项(其中等效项是非空唯一键)。组复制有其自己的内置主键或主键等效项检查集,而不是使用 sql_require_primary_key 系统变量执行的检查。您可以将 CHANGE REPLICATION SOURCE TO 语句的 REQUIRE_TABLE_PRIMARY_KEY_CHECK 选项设置为组复制通道的 ON。但是,请注意,您可能会发现某些在组复制的内置检查下允许的事务在您设置 sql_require_primary_key = ONREQUIRE_TABLE_PRIMARY_KEY_CHECK = ON 时执行的检查下不允许。因此,新的和升级后的组复制通道将 REQUIRE_TABLE_PRIMARY_KEY_CHECK 设置为默认值 STREAM,而不是 ON

如果在组复制中使用远程克隆操作进行分布式恢复(请参阅 第 20.5.4.2 节“用于分布式恢复的克隆”),则 PRIVILEGE_CHECKS_USER 帐户和来自供体的相关设置将被克隆到加入的成员。如果加入的成员设置为在启动时启动组复制,它会自动使用该帐户对相应的复制通道进行权限检查。