0%

mysql【双主模式+keepalived高可用】

说明

mysql双主模式下,在任意一台mysql上写数据都会同步到另一台上,本章通过keepalived VIP实现如果一台服务挂了会自动切换到另一台mysql上.

配置

# 安装keepalived,centos默认安装了
yum install keepalived -y

修改双主机/etc/keepalived/keepalived.conf配置.

global_defs {
   router_id mysql
}

vrrp_script chk_mysql {
    script "killall -0 mysqld"      // 检测mysql进程是否存活
    interval 2
    timeout 2
    fall 3
}

vrrp_instance mysql {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100                // 另一台权重可以设置90,防止争抢VIP
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.41.140          // 设置虚拟ip
    }
    track_script {
        chk_mysql
    }
}

测试

# 通过命令可以看到VIP已经在一台机器上了,也可以通过虚拟IP连接上mysql
[root@mysql01 mysql]# ip addr sh ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:50:56:26:c2:7e brd ff:ff:ff:ff:ff:ff
    inet 192.168.41.141/24 brd 192.168.41.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.41.140/32 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::250:56ff:fe26:c27e/64 scope link 
       valid_lft forever preferred_lft forever
# 关掉mysql服务,命令可能根据你安装方式有区别
service mysql stop

# 再次在两台机器上执行命令,可以看到VIP转移了,可以继续通过VIP连接mysql
ip addr sh ens33