10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国Ltr)- 41.1 mb
PDF (A4)- 41.2 mb
PDF (RPM)- 39.8 mb
HTML下载(TGZ)- 9.5 mb
HTML下载(Zip)- 9.6 mb
HTML下载(RPM)- 8.1 mb
手册(TGZ)- 260.6 kb
手册(Zip)- 371.7 kb
信息(Gzip)- 3.9 mb
信息(邮政编码)- 3.9 mb
本手册节选

18.6.3.1分布式恢复安全用户凭证

从二进制日志进行状态传输需要具有正确权限的复制用户,这样Group replication才能建立直接的成员到成员复制通道。同一个复制用户用于对所有组成员进行分布式恢复。如果已将组成员设置为支持将远程克隆操作作为分布式恢复的一部分使用(从MySQL 8.0.17可获得),则此复制用户还将用作提供程序上的克隆用户,并且还需要为该角色设置正确的权限。有关设置此用户的详细说明,请参见第18.2.1.3节“用于分布式恢复的用户凭证”

为了保护用户凭据,可以为与用户帐户的连接要求SSL,并且(从MySQL 8.0.21中)可以在启动Group Replication时提供用户凭据,而不是将它们存储在副本状态表中。另外,如果使用缓存SHA-2身份验证,则必须在组成员上建立RSA密钥对。

18.6.3.1.1使用缓存SHA-2认证插件的复制用户

默认情况下,MySQL 8中创建的用户使用第6.4.1.2节,“缓存SHA-2可插入认证”.如果您为分布式恢复配置的复制用户使用缓存SHA-2身份验证插件,那么您就是使用SSL进行分布式恢复连接,使用RSA密钥对进行密码交换。有关RSA密钥对的更多信息,请参见第6.3.3节“创建SSL和RSA证书和密钥”

在这种情况下,可以复制的公钥rpl_user向加入成员发送,或配置捐赠者在请求时提供公钥。更安全的方法是将复制用户帐户的公钥复制到加入成员。然后需要配置group_replication_recovery_public_key_path连接成员上的系统变量,该变量具有复制用户帐户公钥的路径。

不太安全的方法是设置group_replication_recovery_get_public_key =对,以便它们向加入成员提供复制用户帐户的公钥。没有办法验证服务器的身份,因此只能设置group_replication_recovery_get_public_key =对当您确定没有服务器身份被泄露的风险时,例如中间人攻击。

18.6.3.1.2 SSL复制用户

必须创建需要SSL连接的复制用户之前加入组的服务器(加入成员)连接到捐赠者。通常,这是在配置服务器以加入组时设置的。要为需要SSL连接的分布式恢复创建复制用户,请在将要参与组的所有服务器上发出以下语句:

SQL_LOG_BIN=0;创建用户名rec_ssl_user'@'%'由'识别密码' require ssl;mysql>授予复制从端ON *。*到'rec_ssl_user' @ ' % ';mysql>授予BACKUP_ADMIN权限*。*到'rec_ssl_user' @ ' % ';mysql> FLUSH PRIVILEGES;SQL_LOG_BIN=1;
18.6.3.1.3安全提供复制用户凭据

为复制用户提供用户凭据,可以将它们永久地设置为group_replication_recovery通道,使用将复制源更改为|将master更改为声明。或者,从MySQL 8.0.21中,您可以在开始GROUP_REPLICATION语句。指定的用户凭据开始GROUP_REPLICATION类设置的任何用户凭据的优先级将复制源更改为|将master更改为声明。

使用将复制源更改为|将master更改为以纯文本的形式存储在服务器上的复制元数据存储库中,但是在开始GROUP_REPLICATION只保存在内存中,并通过停止GROUP_REPLICATION语句或服务器关闭。使用开始GROUP_REPLICATION指定用户凭据,因此有助于保护组复制服务器免受未经授权的访问。方法所指定的,此方法与自动启动组复制不兼容group_replication_start_on_boot系统变量。

方法永久地设置用户凭据将复制源更改为|将master更改为语句,在将要加入组的成员上发出此语句:

修改MASTER为MASTER_USER='rec_ssl_user”,MASTER_PASSWORD = '密码' FOR CHANNEL 'group_replication_recovery';或者从MySQL 8.0.23: MySQL > CHANGE REPLICATION SOURCE TO SOURCE_USER='rec_ssl_user”,SOURCE_PASSWORD = '密码' FOR CHANNEL 'group_replication_recovery';

以提供用户凭据开始GROUP_REPLICATION,在第一次启动组复制或服务器重新启动后发出此语句:

mysql> START GROUP_REPLICATION USER='rec_ssl_user”,密码= '密码”;
重要的

如果你换成使用开始GROUP_REPLICATION在以前使用提供凭据的服务器上指定用户凭据将复制源更改为|将master更改为,您必须完成以下步骤,以获得此更改的安全好处。

  1. 在组成员上停止组复制停止GROUP_REPLICATION声明。虽然可以在Group Replication运行时执行以下两个步骤,但是您需要重新启动Group Replication来实现更改。

  2. 的值group_replication_start_on_boot系统变量为(默认为).

  3. 通过发出以下语句,从副本状态表中删除分布式恢复凭据:

    mysql> CHANGE MASTER TO MASTER_USER= ", MASTER_PASSWORD= " FOR通道group_replication_recovery;或者从MySQL 8.0.23: MySQL > CHANGE REPLICATION SOURCE TO SOURCE_USER= ", SOURCE_PASSWORD= " FOR CHANNEL 'group_replication_recovery';
  4. 重新启动组在组成员上使用开始GROUP_REPLICATION语句,指定分布式恢复用户凭据。

如果没有这些步骤,凭据仍然存储在副本状态表中,还可以在远程克隆操作期间将其传输给其他组成员,以进行分布式恢复。的group_replication_recovery通道可以不经意地使用存储的凭据在原始成员或从其克隆的成员上启动。在服务器引导时自动启动Group Replication(包括在远程克隆操作之后)将使用存储的用户凭据,如果操作员没有指定分布式恢复凭据,也将使用这些凭据开始GROUP_REPLICATION命令。