warning: [mariadbmon] The current master server ‘srv-cls01-02‘ is no longer valid because it is in r

一 问题描述

mariadb有一主两从,示例:

192.168.144.249

192.168.144.250

192.168.144.251

起初249这台服务器是主库,250,251是从(从库开启了read_only),后来发生了一次主从切换,250变成了主库,249,251自动变成了250的从库。后来重启了250,发现maxscale显示三台数据库的状态都是Slave,Running:

看到maxscale日志里有如下报错:

    21 2022-06-16 01:00:50   warning: [mariadbmon] The current master server 'srv-cls01-02' is no longer valid because it is in read-only mode, but there is no valid alternative to swap to.
     22 2022-06-16 01:00:50   error  : [mariadbmon] No Master can be determined. Last known was 192.168.144.250:3306

由于没有了主库,导致业务无法写入数据。

二 出错原因

重启数据库很快,此时还没来得及触发数据库自动故障转移,没能提升从库为主库。而且重启了250数据库,会读取配置文件里的只读配置,所以maxscale不知道谁是主库了,所以三台都是Slave,Running。

三 解决办法

登录数据库,在线改参数配置:

set global read_only=on;

取消数据库mariadb配置文件里的read_only配置。

为了避免同事会直连某个从库(没连maxscale的代理地址)做了修改,导致主从不一致,可以限制只让maxscale ip连接数据库(创建host为maxscale服务器ip的用户),但是这样,从客户端连接maxscale代理ip会报错:

需要在maxscale配置文件里监听处添加一个参数,跳过maxscale对账号权限的认证:

authenticator_options=skip_authentication=true

然后重启maxscale

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值