朝花夕拾16章MySQL Shell 8.3 InnoDB ClusterSet 的用户帐户

2024年 2月 18日 77.8k 0

  • InnoDB Cluster服务器配置帐户

    该帐户用于创建和配置 InnoDB Cluster 和 InnoDB ClusterSet 部署的成员服务器。每台成员服务器只有一个服务器配置帐户。集群中的每台成员服务器必须使用相同的用户帐户名和密码。您可以使用root服务器上的帐户来实现此目的,但如果这样做, root集群中每个成员服务器上的帐户必须具有相同的密码。出于安全原因,不建议这样做。首选方法是使用 dba.configureInstance()带有 clusterAdmin选项的命令创建 InnoDB Cluster 服务器配置帐户。为了获得更好的安全性,请在交互式提示符处指定密码,否则使用 选项指定密码clusterAdminPassword 。在将成为 InnoDB 集群一部分的每个服务器实例(您连接到创建集群的实例以及将加入集群的实例)上以相同的方式使用相同的用户名和密码创建相同的帐户在那之后。该dba.configureInstance()命令自动授予帐户所需的权限。如果您愿意,可以手动设置该帐户,并授予其 手动配置 InnoDB 集群管理员帐户中列出的权限。除了完整的 MySQL 管理员权限之外,该帐户还需要对 InnoDB Cluster 元数据表具有完整的读写权限。使用该dba.configureInstance() 操作创建的 InnoDB Cluster 服务器配置帐户不会复制到 InnoDB Cluster 或 InnoDB ClusterSet 部署中的其他服务器。 MySQL Shell 禁用该dba.configureInstance() 操作的二进制日志记录。这意味着您必须在每个服务器实例上单独创建帐户。在 InnoDB ClusterSet 部署中,部署中使用的每个服务器实例上必须存在相同的 InnoDB Cluster 服务器配置帐户。因此,当您设置副本集群时,您需要发出一个 dba.configureInstance()带有选项的命令 clusterAdmin,以便在将成为副本集群一部分的每个服务器实例上创建帐户。该命令必须命名主集群中的 InnoDB 集群服务器配置帐户,并且必须为其指定相同的密码。您需要在将实例加入副本集群之前执行此步骤,以便该帐户可用于配置副本 InnoDB Cluster 和 InnoDB ClusterSet 部署元数据和复制。

  • InnoDB集群管理员帐户

    完成配置过程后,这些帐户可用于管理 InnoDB Cluster 和 InnoDB ClusterSet。您可以设置多个。每个帐户必须以相同的用户名和密码存在于 InnoDB Cluster 中的每个成员服务器上,以及 InnoDB ClusterSet 部署中每个集群的每个成员服务器上。要为 InnoDB ClusterSet 部署创建 InnoDB Cluster 管理员帐户,请 *cluster*.setupAdminAccount() 在将所有实例添加到主集群中的一台成员服务器后,在该集群中发出命令。此命令使用您指定的用户名和密码创建一个帐户,并具有所有必需的权限。用于创建帐户的事务 *cluster*.setupAdminAccount() 会发送到集群中的所有其他服务器实例,以便在它们上创建帐户。如果在开始设置 InnoDB ClusterSet 部署时主 InnoDB Cluster 已经存在,则 InnoDB Cluster 管理员帐户可能已经存在。在这种情况下,您不需要 *cluster*.setupAdminAccount() 再次发出,除非您想创建更多的 InnoDB Cluster 管理员帐户。InnoDB ClusterSet 部署中的副本集群必须具有与主集群相同的 InnoDB Cluster 管理员帐户集。但是,当您创建副本集群时,请勿尝试自行设置 InnoDB Cluster 管理员帐户。用于创建帐户的事务 *cluster*.setupAdminAccount() 将写入主集群的二进制日志,并在配置过程中自动从主集群复制到副本集群。当副本集群应用这些事务时,它会在副本集群中的成员服务器上创建相同的帐户。如果帐户已存在于副本集群中的服务器上,则会导致复制错误,并且该服务器无法加入集群。所以你需要等待它们被复制。如果创建 InnoDB 集群管理员帐户的事务不久前发生在主集群上,则复制该事务以及该帐户出现在副本集群上可能需要一些时间。选择克隆作为副本集群的配置方法可以加快该过程。笔记如果主 InnoDB Cluster 是在 MySQL Shell 8.0.20 之前的版本中设置的,则该 *cluster*.setupAdminAccount() 命令可能已与 update更新 InnoDB Cluster 服务器配置帐户的权限选项一起使用。这是该命令的特殊用途,不写入二进制日志,也不复制到副本集群。当 InnoDB ClusterSet 部署完成后,您可以 *cluster*.setupAdminAccount() 为 ClusterSet 创建更多 InnoDB Cluster 管理员帐户。您可以在连接到 InnoDB ClusterSet 部署中的任何成员服务器(主集群或副本集群中)时执行此操作。创建帐户的事务被路由到要执行的主集群,然后复制到副本集群中的所有服务器,并在所有服务器上创建帐户。

  • MySQL 路由器帐户

    MySQL Router 使用这些帐户连接到 InnoDB Cluster 和 InnoDB ClusterSet 部署中的服务器实例。您可以设置多个。每个帐户必须存在于具有相同用户名和密码或 SSL 证书的 InnoDB Cluster 中的每个成员服务器上,以及 InnoDB ClusterSet 部署中每个集群的每个成员服务器上。创建 MySQL Router 帐户的过程与创建 InnoDB Cluster 管理员帐户的过程相同,但使用命令 *cluster*.setupRouterAccount() 。您可以在主集群中的一台成员服务器上创建帐户,或者使用已存在的帐户(如果在开始设置 InnoDB ClusterSet 部署时主 InnoDB 集群已存在)。然后让副本集群应用事务以在其成员服务器上创建帐户。有关创建或升级 MySQL Router 帐户的说明,请参阅 第 6.10.2 节 “配置 MySQL Router 用户”。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论