全面上市前:2022-11-17
MySQL Router 是高可用性 (HA) 解决方案的构建块。它通过智能地将连接路由到 MySQL 服务器来简化应用程序开发,从而提高性能和可靠性。
MySQL Router 是 InnoDB Cluster 的一部分,是轻量级中间件,可在您的应用程序和后端 MySQL 服务器之间提供透明路由。它用于各种用例,例如通过将数据库流量路由到适当的后端 MySQL 服务器来提供高可用性和可扩展性。可插拔架构还使开发人员能够针对自定义用例扩展 MySQL Router。
MySQL 组复制跨多个服务器复制数据库,同时在服务器发生故障时执行自动故障转移。当与 InnoDB 集群一起使用时,MySQL 路由器充当代理来隐藏网络上的多个 MySQL 实例,并将数据请求映射到集群实例之一。只要有足够的在线副本并且组件之间的通信完好无损,应用程序就可以联系其中之一。MySQL Router 还通过让应用程序连接到 MySQL Router 而不是直接连接到 MySQL 来实现这一点。
有关 MySQL Router 安装的更多信息,请参阅 安装 MySQL Router。
有关 MySQL Router 部署的更多信息,请参阅 部署 MySQL Router。
有关 MySQL Router 配置的更多信息,请参阅 配置 MySQL Router。
设置 InnoDB 集群并运行 MySQL 路由器后,您可以使用 MySQL Shell 控制台测试 InnoDB 集群和 MySQL 路由器设置。
默认情况下,InnoDB Cluster 可以通过连接到:
-
经典的 MySQL 协议
读/写连接:实例地址:端口 6446
只读连接:实例地址:端口 6447
-
X协议
读/写连接:实例地址:端口 6448
只读连接:实例地址:端口 6449
不是直接连接到其中一个 MySQL 服务器实例,而是通过 MySQL 路由器连接。
-
发出以下连接命令,其中用户为
demo-user
,实例地址为demo-instance
,使用经典 MySQL 协议:shell.connect ('demo-user@demo-instance:6446')
提供 root 密码以连接到 InnoDB 集群。
-
通过创建一个变量
cluster
并为其分配dba.getCluster()
JavaScript 方法的值来检查 InnoDB 集群的状态:cluster = dba.getCluster()
cluster.status()
-
切换到 SQL 模式:
\sql
-
通过发出以下命令查询实例正在运行的端口:
SELECT @@port; +--------+ | @@port | +--------+ | 3310 | +--------+ 1 row in set (0.0007 sec)
在本例中,InnoDB Cluster 运行在 3310 端口,因此 MySQL Router 已正确配置并成功运行。