Documentation Home

6.10.2 配置MySQL Router用户

当 MySQL Router 连接到 InnoDB Cluster 或 innodb_replicaset; 时,它需要一个具有正确权限的用户帐户。从 MySQL Router 版本 8.0.19 开始,可以使用该 --account选项指定此内部用户。在以前的版本中,MySQL Router 在集群的每个引导程序中创建内部帐户,这可能会导致随着时间的推移建立许多帐户。从 MySQL Shell 版本 8.0.20 开始,您可以使用 AdminAPI 来设置 MySQL Router 所需的用户帐户。

使用该setupRouterAccount(user, [options]) 操作创建一个 MySQL 用户帐户或升级现有帐户,以便 MySQL Router 可以使用它来操作 InnoDB Cluster 或 InnoDB ReplicaSet。这是使用 InnoDB Cluster 和 InnoDB ReplicaSet 配置 MySQL Router 的推荐方法。

要添加一个新的 MySQL Router 帐户命名 myRouter1为变量引用的 InnoDB Cluster testCluster,发出:

mysqlsh> testCluster.setupRouterAccount('myRouter1')

在这种情况下,没有指定域,因此使用通配符 ( %) 创建帐户,这确保创建的用户可以从任何域连接。要限制帐户只能从 example.comJavaScript 中的域连接,请发出:

mysql-js> testCluster.setupRouterAccount('myRouter1@example.com')

或者使用 Python:

mysql-py> testCluster.setup_router_account('myRouter1@example.com')

该操作提示输入密码,然后为 MySQL Router 用户设置正确的权限。如果 InnoDB Cluster 或 InnoDB ReplicaSet 有多个实例,则创建的 MySQL Router 用户将传播到所有实例。

当您已经配置了 MySQL Router 用户时,例如您使用的是 8.0.20 之前的版本,您可以使用该 setupRouterAccount()操作重新配置现有用户。在这种情况下,将 update选项设置为 true。例如,要重新配置myOldRouter用户,请在 JavaScript 中发出以下命令:

mysql-js> testCluster.setupRouterAccount('myOldRouter', {'update':1})

或者使用 Python:

mysql-py> testCluster.setup_router_account('myOldRouter', {'update':1})