您可以针对 InnoDB Cluster 或 InnoDB ReplicaSet 引导 MySQL Router 的多个实例。从 8.0.19 版本开始,要显示所有已注册 MySQL Router 实例的列表,请发出:
Cluster.listRouters()
结果提供有关每个已注册 MySQL Router 实例的信息,例如它在元数据中的名称、主机名、端口等。例如,发出以下 JavaScript 命令:
mysql-js> Cluster.listRouters()
{
"clusterName": "example",
"routers": {
"ic-1:3306": {
"hostname": "ic-1:3306",
"lastCheckIn": "2020-01-16 11:43:45",
"roPort": 6447,
"roXPort": 64470,
"rwPort": 6446,
"rwXPort": 64460,
"version": "8.0.19"
}
}
}
或者发出以下 Python 命令:
mysql-py> Cluster.list_routers()
{
"clusterName": "example",
"routers": {
"ic-1:3306": {
"hostname": "ic-1:3306",
"lastCheckIn": "2020-01-16 11:43:45",
"roPort": 6447,
"roXPort": 64470,
"rwPort": 6446,
"rwXPort": 64460,
"version": "8.0.19"
}
}
}
返回信息显示:
MySQL 路由器实例的名称。
上次签入时间戳,由存储在元数据中的 MySQL 路由器的定期 ping 生成。
运行 MySQL Router 实例的主机名。
MySQL 路由器为经典 MySQL 协议连接发布的只读和读写端口。
MySQL 路由器为 X 协议连接发布的只读和读写端口。
此 MySQL 路由器实例的版本。
version
在 8.0.19 中添加了对返回的支持 。如果此操作针对较早版本的 MySQL Router 运行,则版本字段为null
.
此外,该
操作可以显示不支持 MySQL Shell 支持的元数据版本的实例列表。使用该
Cluster
.listRouters()onlyUpgradeRequired
选项。例如,通过发布
.
Cluster
.listRouters({'onlyUpgradeRequired':'true'})
返回的列表仅显示在 中注册的 MySQL Router 实例Cluster
,这些实例需要升级其元数据。有关详细信息,请参阅
第 6.11 节,“升级元数据模式”。
MySQL Router 实例不会自动从元数据中删除,因此例如当您引导更多实例时,InnoDB Cluster 元数据包含越来越多的实例引用。要从集群的元数据中删除已注册的 MySQL Router 实例,请使用
8.0.19 版中添加的操作。
Cluster
.removeRouterMetadata(router
)
使用该
操作获取要删除的 MySQL Router 实例的名称,并将其作为Cluster
.listRouters()router
. 例如,假设在集群中注册的 MySQL Router 实例是:
mysql-js> Cluster.listRouters(){
"clusterName": "testCluster",
"routers": {
"myRouter1": {
"hostname": "example1.com",
"lastCheckIn": null,
"routerId": "1",
"roPort": "6447",
"rwPort": "6446"
"version": null
},
"myRouter2": {
"hostname": "example2.com",
"lastCheckIn": "2019-11-27 16:25:00",
"routerId": "3",
"roPort": "6447",
"rwPort": "6446"
"version": "8.0.19"
}
}
}
基于名为
“ myRouter1 ”null
的
实例具有“ lastCheckIn ”和“版本”这一事实。通过发出以下 JavaScript 命令从元数据中删除这个旧实例:
mysql-js> cluster.removeRouterMetadata('myRouter1')
或者,通过发出以下 Python 命令:
mysql-py> cluster.remove_router_metadata('myRouter1')
指定的 MySQL Router 实例通过从 InnoDB Cluster 元数据中删除而从集群中注销。