Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


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

19.3.3.2 组复制通道的权限检查

您也可以使用 PRIVILEGE_CHECKS_USER 账户来保护 Group Replication 中的两个复制线程。每个组成员上的 group_replication_applier 线程用于应用组事务,而每个组成员上的 group_replication_recovery 线程用于从二进制日志中进行状态转移,以便在成员加入或重新加入组时进行分布式恢复。

要保护这些线程,请停止 Group Replication,然后使用 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;

对于 Group Replication 通道,REQUIRE_ROW_FORMAT 设置将自动启用,当通道创建时不能被禁用,因此您不需要指定这个设置。

Group Replication 需要每个要被组复制的表都有定义的主键或主键等效项,而不是使用 sql_require_primary_key 系统变量执行的检查,Group Replication 有自己的检查机制。您可以将 REQUIRE_TABLE_PRIMARY_KEY_CHECK 选项设置为 ON,在 CHANGE REPLICATION SOURCE TO 语句中。但是,请注意在 Group Replication 的检查机制下允许的交易可能在设置 sql_require_primary_key = ONREQUIRE_TABLE_PRIMARY_KEY_CHECK = ON 时不允许。因此,新的和升级的 Group Replication 通道将 REQUIRE_TABLE_PRIMARY_KEY_CHECK 设置为默认值 STREAM,而不是 ON

如果在 Group Replication 中使用远程克隆操作进行分布式恢复(见Section 20.5.4.2, “Cloning for Distributed Recovery”),则 PRIVILEGE_CHECKS_USER 账户和相关设置将从捐助者克隆到加入的成员。如果加入的成员设置为在启动时启动 Group Replication,它将自动使用账户来进行权限检查,以适应适当的复制通道。