MySQL双主复制

 

1.双主复制:实现和MHA相同的效果
    使用keepalive实现双主热备,防止单点故障的主从结构。
    两台mysql互做主从,各自安装keepalive实现热备,其他从服务器和热备的虚拟IP建立主从连接。

2.开启两台mysql,互相建立主从

在第一台mysql创建复制用户
mysql1:
grant replication slave on *.* to repl@'192.168.8.%' identified by '123';

在第二台mysql建立和第一台的主从关系
mysql2:
change master to
master_host='192.168.8.10',
master_user='repl',
master_port=3306,
master_password='123' ,
MASTER_AUTO_POSITION=1;
start slave;

在第一台mysql再建立和第二台的主从关系
mysql1:
change master to
master_host='192.168.8.20',
master_user='repl',
master_port=3306,
master_password='123' ,
MASTER_AUTO_POSITION=1;
start slave;

mysql1、mysql2:
show slave status \G

3.两台服务器安装keepalived
yum -y install keepalived

4.配置mysql1的keepalived
vim /etc/keepalived/keepalived.conf
修改为:
global_defs {
   router_id mysql1
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.8.254
    }
}
virtual_server 192.168.8.254 3306 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    persistence_timeout 50
    protocol TCP

    real_server 192.168.8.10 3306 {
        weight 1
        TCP_CHECK {
                connect_port 3306
                connect_timeout 3
                retry 3
                delay_before_retry 3
}
}
}
保存退出

启动:systemctl start keepalived


5.配置mysql2的keepalived
vim /etc/keepalived/keepalived.conf
修改为:
global_defs {
   router_id mysql2
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 99
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.8.254
    }
}
virtual_server 192.168.8.254 3306 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    persistence_timeout 50
    protocol TCP

    real_server 192.168.8.20 3306 {
        weight 1
        TCP_CHECK {
                connect_port 3306
                connect_timeout 3
                retry 3
                delay_before_retry 3
}
}
}
保存退出

启动:systemctl start keepalived

6.两台服务器查看虚拟IP
ip a show dev ens33

7.开启第三台mysql,与虚拟IP建立主从
mysql3:
change master to
master_host='192.168.8.254',
master_user='repl',
master_port=3306,
master_password='123' ,
MASTER_AUTO_POSITION=1;
start slave;

show slave status \G

注:其他主机ping 192.168.8.254可能会不通,第三个从服务器也无法建立主从;
    keepalived切换几遍,再尝试ping。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值