实战案例:实现MySQL双主模式的高可用

实战案例:实现MySQL双主模式的高可用

实战案例:实现MySQL双主模式的高可用插图

#先实现MySQL的双主架构

#在ka2第二个节点创建连接MySQL查看同步状态的授权用户
[root@ka2-centos8 ~]#mysql -uroot -p123456
MariaDB [(none)]> grant all on *.* to root@'10.0.0.%'  identified by '123456';

#实现MySQL的健康性检测脚本
[root@ka1-centos8 ~]#vi /etc/keepalived/check_mysql.sh
#!/bin/bash
slave_is=( (mysql -uroot -p123456 -h10.0.0.18 -e "show slave status/G" | grep "Slave_.*_Running:" | awk '{print2}') )
if [ "{slave_is[0]}" = "Yes" -a "{slave_is[1]}" = "Yes" ];then
    exit 0
else
    exit 1
fi

#配置keepalived调用上面脚本
[root@ka1-centos8 ~]#cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
    global_defs {
        notification_email {
        root@localhost
        }
    notification_email_from kaadmin@localhost
    smtp_server 127.0.0.1
    smtp_connect_timeout 30
    router_id ka1.magedu.org            #在另一个节点为ka2.magedu.org
    vrrp_mcast_group4 224.0.100.100
}
vrrp_script check_mysql {                   #只需在第一个节点上实现脚本
    script "/etc/keepalived/check_mysql.sh"
    interval 1
    weight -30
    fall 3
    rise 2
    timeout 2
}

vrrp_instance VI_1 {
    state MASTER                #在另一个节点为BACKUP
    interface eth0
    virtual_router_id 66
    priority 100                #在另一个节点为80
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 123456
    }
    virtual_ipaddress {
        10.0.0.10/24 dev eth0 label eth0:1
    }
    track_interface {
        eth0
    }
    notify_master "/etc/keepalived/notify.sh master"
    notify_backup "/etc/keepalived/notify.sh backup"
    notify_fault "/etc/keepalived/notify.sh fault"
    track_script {
       check_mysql                      #只需在第一个节点上实现脚本
   }
}

本文链接:http://www.yunweipai.com/35397.html

原创文章,作者:kepupublish,如若转载,请注明出处:https://blog.ytso.com/52727.html

(0)
上一篇 2021年8月6日
下一篇 2021年8月6日

相关推荐

发表回复

登录后才能评论