Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  Privilege Checks For Group Replication Channels

19.3.3.2 组复制通道的权限检查

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

要保护其中一个线程,请停止组复制,然后发出 CHANGE REPLICATION SOURCE TO 语句,带有 PRIVILEGE_CHECKS_USER 选项,指定 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 帐户和相关设置将从捐赠者克隆到加入的成员。如果加入的成员设置为在启动时启动组复制,则它将自动使用该帐户对适当的复制通道进行权限检查。