MySQL Router
在上一篇文章中(Mysql shell建立innodb cluster - 墨天轮),介绍了通过沙箱在一个主机上安装innodb cluster进行模拟,接着上一篇文章这里继续配置MySQL Router,完成数据库集群和路由的集成测试。
在配置好一个innodb cluster集群后,就可以配置MySQL路由器以提供高可用性。
无论是否部署了沙箱集群或生产集群,MySQL路由器都可以使用该 —bootstrap选项基于InnoDB Cluster的元数据进行自我配置 。这将自动配置MySQL路由器,以将连接路由到群集的服务器实例。客户端应用程序连接到MySQL路由器提供的端口,而无需了解InnoDB Cluster拓扑。万一发生意外故障,InnoDB Cluster会自动进行自我调整,并且MySQL Router会检测到更改。这消除了您的客户端应用程序处理故障转移的需要。
建议的MySQL Router部署与应用程序位于同一主机上。使用沙箱部署时,所有内容都在单个主机上运行, 因此,您将MySQL Router部署到同一主机上。使用生产部署时,建议将一个MySQL路由器实例部署到用于承载一个客户端应用程序的每台计算机上。也可以将MySQL路由器部署到应用程序实例通过其连接的通用计算机上。
生成的MySQL路由器配置将创建用于连接到群集的TCP端口。默认情况下,将创建用于使用经典MySQL协议和X协议与集群通信的端口。要使用X协议,服务器实例必须安装并配置了X插件,这是MySQL 8.0及更高版本的默认设置。默认的可用TCP端口为:
6446 -对于经典的MySQL协议读写会话,MySQL路由器将传入的连接重定向到主服务器实例。
6447 -对于经典的MySQL协议只读会话,MySQL路由器将传入的连接重定向到辅助服务器实例之一。
64460 -对于X协议读写会话,MySQL路由器将传入的连接重定向到主服务器实例。
64470 -对于X协议只读会话,MySQL路由器将传入的连接重定向到辅助服务器实例之一。
根据您的MySQL路由器配置,端口号可能与上述端口号不同。例如,如果您使用 --conf-base-port选项或 group_replication_single_primary_mode变量。启动MySQL Router时,将列出确切的端口。
传入连接的重定向方式取决于所使用的群集类型。当使用单主群集时,默认情况下,MySQL路由器发布一个X协议和一个经典的MySQL协议端口,客户端连接到该端口进行读写会话,然后重定向到群集的单主群集。对于多主群集,读写会话将以循环方式重定向到主实例之一。
1.配置MySQL Router
配置MySQL Router的启动节点为端口3310的实例:
mysqlrouter --bootstrap root@localhost:3310 —user=mysql
输入密码,成功之后,这个绑定就打通了。
可以看出分配的读写端口为6446,只读端口6447,X协议的连接端口64460和64470。
这个引导过程将生成配置文件,如下:
[root@balabala mysql-sandboxes]# cat /etc/mysqlrouter/mysqlrouter.conf
# File automatically