GreatSQL社区

搜索

chongzh

MySQL使用InnoDB集群时自动创建的用户帐户

chongzh 已有 264 次阅读2023-9-10 22:41 |个人分类:Mysql shell|系统分类:原理&产品解读

使用InnoDB Cluster时,出于各种目的会自动创建一些用户帐户。本文档描述了此类用户帐户。

InnoDB集群是基于以下组件的复合产品(暂时):

  • MySQL组复制(MySQL服务器的插件/组件)
  • MySQL外壳
  • MySQL路由器使用InnoDB Cluster时,MySQL Shell(直到8.0.16)和MySQL Router会为其管理任务创建随机用户和密码,以简化用户交互。创建的用户帐户如下所示:
SELECT user, host FROM user WHERE user LIKE 'mysql\_%' ORDER BY user, host;

MySQL Shell


MySQL Shell创建以 "mysql_innodb_cluster_r" (unil 8.0.16) or mysql_innodb_cluster_ (8.0.17 and later) 开头的用户名。这些用户用于group replication recovery。MySQL Shell生成随机用户和随机密码对。用户不需要知道这些凭证就可以使用InnoDB Cluster,因为MySQL Shell在内部管理这些凭证。MySQL Shell不在本地存储凭据。因为只有在设置组复制恢复通道时才需要凭据。这些凭证通过CHANGE MASTER TO命令存储在目标MySQL服务器上。

用户名的前缀不能更改;它是在MySQL Shell中硬编码的。代码中原来写的前缀是“mysql_innodb_cluster_rplusr”,然而用户名的长度限制为32,这是mysql服务器的一个限制。

MySQL Router

mysql路由器在做引导时创建以“mysql_router”开头的用户名。这些用户用于检索元数据。MySQL路由器生成随机用户和随机密码对。密码以加密格式存储在路由器的数据目录中。查看 keyring_path 选项了解更多详细信息。加密和解密是使用主密钥完成的。默认情况下,主密钥在引导时创建在与路由器配置文件(mysqlrouter.conf)相同的目录中。为了更安全,您可以将文件放在单独的位置。有关主密钥的更多信息,请参见master_key_path选项。

这些用户不会被自动删除。当不再使用路由器实例时,您需要手动删除用户。请注意不要删除错误的用户。用户帐户是按路由器实例创建的。发现router_id 路由器配置文件(mysqlrouter.conf)中的选项。router_id包含在用户名中的字符串“mysql_router”之后。如果要删除的未使用的路由器实例的router_id为1,则MySQL服务器上的用户名以“mysql_router1_”开头,后跟随机的字母数字字符串。在上面的示例代码中,router_id=1的MySQL路由器实例的用户名是“mysql_router1_csrx95gqhf7g”。


评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

合作电话:010-64087828

社区邮箱:greatsql@greatdb.com

社区公众号
社区小助手
QQ群
GMT+8, 2024-4-29 05:21 , Processed in 0.013034 second(s), 8 queries , Redis On.
返回顶部