我们使用 MySQL Server 8,在单主模式下以组复制方式使用三个节点。服务器运行在windows下。为了与服务器通信,我们使用 MySQL Router 8。
问题是,路由器不知道三个节点中哪一个可以写入。因此,提示符总是有可能返回“MySQL 服务器正在使用 --super-read-only 选项运行”。
如何正确配置路由器以将所有写入命令发送到实际的捐赠服务器?如果这是不可能的,是否有办法配置始终使用主服务器的第二个路由器?
编辑: 这是mysqlrouter.conf的内容:
[DEFAULT]
user = routing
logging_folder = D:\MySQL Router\logs
max_total_connections = 1500
[routing:primary]
bind_address = db.lan
bind_port = 3306
destinations = db03.lan:3306, db04.lan:3306, db05.lan:3306
routing_strategy = round-robin
给大家提供一下节点3下MGR单主模式的参考配置:
[DEFAULT]
config_folder = /etc/mysqlrouter
logging_folder = /usr/local/mysqlrouter/log
runtime_folder = /var/run/mysqlrouter
[logger]
level = INFO
[routing:slaves]
bind_address = 192.168.100.21:7001
destinations = 192.168.100.23:3306,192.168.100.24:3306
mode = read-only
connect_timeout = 1
[routing:masters]
bind_address = 192.168.100.21:7002
destinations = 192.168.100.22:3306
mode = read-write
connect_timeout = 2
mysql路由器:192.168.100.21 主控:192.168.100.22 从机:192.168.100.23/24
您还可以为路由器创建元数据缓存。这允许您将主要角色和次要角色分配到单个目标。这样每个路由器都知道当前的集群拓扑,因此也知道当前的主节点。
您可以手动设置它,但我通常在集群节点上使用 MySQL Shell 来实现此目的。
有关参考,请参阅此路由器配置。