问题描述
我有活动的主 - 从 (ssl) 复制。我安装了 maxscale,设置了一个配置,但是 maxscale 无法获取 gtid_binlog_pos
错误:[mariadbmon] 无法选择“master”作为故障转移的降级目标,因为它没有“gtid_binlog_pos”并且不安全的故障转移被禁用。
数据库:MariaDB 10.3.25 操作系统:Ubuntu 20.04
我的配置最大比例:
threads=auto
log_info=1
log_debug=1
logdir=/opt/sslmaxscale/maxscale.log
[master]
type=server
address=192.168.89.234
port=3306
protocol=MariaDBBackend
ssl=required
ssl_ca_cert=/opt/sslmaxscale/ca-cert.pem
ssl_cert=/opt/sslmaxscale/server-cert.pem
ssl_key=/opt/sslmaxscale/server-key.pem
[slave]
type=server
address=192.168.89.231
port=3306
protocol=MariaDBBackend
ssl=required
ssl_ca_cert=/opt/sslmaxscale/ca-cert.pem
ssl_cert=/opt/sslmaxscale/server-cert.pem
ssl_key=/opt/sslmaxscale/server-key.pem
[MariaDB-Monitor]
type=monitor
module=mariadbmon
servers=master,slave
user=repl
password=password
monitor_interval=2000
auto_rejoin=true
auto_failover=true
replication_master_ssl=true ```
Ssl connection in MysqL working,i checked it. And gtid_binlog_pos i can got
MariaDB [(none)]> SELECT @@global.gtid_binlog_pos; @@global.gtid_binlog_pos - 1-1-517
解决方法
发现问题。数据库配置中缺少 skip-networking = 0 变量。默认情况下,它设置为 1。这意味着我只能通过 localhost 连接。
但不清楚复制如何与 skip-networking = 1 一起工作...
,只要复制没有以允许安全故障转移发生的方式设置,就会记录该错误。这通常表明监视器配置使用的用户有问题,或者复制的启动方式与 MaxScale 中的自动服务器管理不兼容。
您可以禁用此安全检查并通过将 enforce_simple_topology=true
添加到监视器定义来强制监视器创建一个简单的拓扑。