###1. 准备工作
准备三台虚拟机 一台用来访问测试
全部安装MySQL
关闭防火墙以及selinux
两台mysql服务器创建不同库来查看区别
vip 192.168.181.100
mysql1 192.168.181.128
mysql2 192.168.181.144
mysql3 192.168.181.130
标准流程
一、mysql 主主同步 (不使用共享存储,数据保存本地存储)
二、安装keepalived
三、keepalived主备配置文件
四、mysql状态检测脚本/root/bin/keepalived_check_mysql.sh
五、测试及诊断
因实验不做主主同步
###2. 安装keepalived及配置Keepalived
[root@master ~]# yum -y install ipvsadm keepalived
[root@slave ~]# yum -y install ipvsadm keepalived
[root@master ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id master
}
vrrp_script check_run {
script "/etc/keepalived/keepalived_chech_mysql.sh"
interval 5
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 89
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.181.100/24
}
track_script {
check_run
}
}
[root@slave ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id backup
}
vrrp_script check_run {
script "/etc/keepalived/keepalived_check_mysql.sh"
interval 5
}
vrrp_instance VI_1 {
state BACKUP
nopreempt
interface ens33
virtual_router_id 89
priority 50
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.181.100/24
}
track_script {
check_run
}
}
###3. mysql状态检测脚本(两台MySQL同样的脚本)
[root@master ~]# vim /etc/keepalived/keepalived_chech_mysql.sh
#!/bin/bash
/usr/bin/mysql -uroot -p'ChenChao@123' -e "show status" &>/dev/null
if [ $? -ne 0 ] ;then
systemctl stop keeplived stop
fi
[root@master ~]# chmod +x /etc/keepalived/keepalived_chech_mysql.sh
[root@slave ~]# vim /etc/keepalived/keepalived_chech_mysql.sh
#!/bin/bash
/usr/bin/mysql -uroot -p'ChenChao@123' -e "show status" &>/dev/null
if [ $? -ne 0 ] ;then
systemctl stop keeplived stop
fi
[root@slave ~]# chmod +x /etc/keepalived/keepalived_chech_mysql.sh
[root@master ~]# systemctl start keepalived
[root@master ~]# systemctl enable keepalived
[root@slave ~]# systemctl start keepalived
[root@slave ~]# systemctl enable keepalived
###4. 测试及诊断
注意:测试的时候记得检查mysql用户的可不可以远程登录。
将主节点关机测试