MySQL高可用
虚拟机:
centos7
6也可以但是网卡不一样大家注意!!!
基础环境:
基于MySQL互为主从(双主、主主),请现配置
在主上面先安装 keepalived
yum -y install keepalived
编辑keepalived配置文件
vim /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state MASTER \\初始状态MASTER\BACKUP
interface ens33 \\网卡设备
virtual_router_id 51 \\广播的路由ip
priority 100 \\优先级
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.188.188 \\ VIP地址
}
}
virtual_server 192.168.188.188 3306 { \\虚拟机服务器
delay_loop 6
lb_algo rr \\rr算法
lb_kind NAT \\NAT模式 还有一个是DR模式
protocol TCP
real_server 192.168.174.131 3306 { \\真实虚拟机
weight 1
notify_down /root/kill.sh \\当我们检测到3306不可用的时候,执行脚本
TCP_CHECK { \\传输控制协议检查
connect_timeout 3
connect_port 3306 \\端口是3306
nb_get_retry 3
delay_before_retry 3
}
}
}
生成一个停止脚本
cat kill.sh
#!/bin/bash
systemctl stop keepalived
然后重启keepalived
systemctl restart keepalived
查看 ip a 看是否生成VIP
从:
也要安装keepalived
yum -y install keepalived
为了不想太麻烦 直接从主上面scp一份到从上面
scp /etc/keepalived/keepalived.conf root@192.168.174.132:/etc/keepalived/keepalived.conf
这个时候要修改的就是
state BACKUP 初始状态
interface ens33 网卡
priority 90 优先级
real_server 192.168.174.132 3306 真实服务器的ip
然后把主的kill.sh脚本 复制一份到从
scp kill.sh root@192.168.174.132:/root/
然后重启一下Keepalived
systemctl restart keepalived
测试:
停止mysql
systemctl stop mariadb
查看 ip a
这是主 主上面没有的话 查看从上面是否飘逸成功
飘逸成功 说明实现了mysqld+keepalived高可用