Mysql主主中Keepalived的配置
系统版本:centos6.5_x64
Keepalived的版本:keepalived-1.2.20.tar.gz
Vip1:172.18.49.112
Mysq-A:172.18.49.10
Mysql-B:172.18.49.2
安装keepalived:
yum –y install keepalived
#################################################
或者源码安装
yum -y install kernel-devel openssl-devel popt-devel popt
tar zxf keepalived-1.2.20.tar.gz(或者可以yum直接装上)
cd keepalived-1.2.20
./configure --prefix=/
make
make install
keepalived –version
#############################################################
Keepalived的主备模式,配置文件修改:
172.18.49.10作为主(master),172.18.49.2作为备(backup),Vip为172.18.49.112。
主keepalived上的配置
Mysql-B上和mysql-A上只有router_id、priority、real_server三处不同,其他配置相同。
配置文件中添加的脚本mysql.sh,在mysql-A和mysql-B上都要添加:
vim /etc/keepalived/mysql.sh
#!/bin/bash
pkill keepalived
/sbin/ifdown eth0 && /sbin/ifup eth0
chmod +x mysql.sh
这是一个检测脚本,作用是当mysql停止工作时自动关闭本机的keepalived,当MySQL正常启动之后,要手动启动keepalived服务。
备keepalived也就是mysql-B上的配置:
测试:
在mysql-A和mysql-B上分别执行ip addr show dev eth0命令查看mysql-B和mysql-A主机对VIP(群集虚拟ip)的控制权。
Mysql-A上查看:
Mysql-B上查看:
停止mysql-A服务器上的MySQL服务,看keepalived的监控检查程序是否会触发mysql.sh脚本停止mysql-A主机的mysql服务。
停止mysql-A服务器上的MySQL之后其上面的keepalived的也随之不在运行了,说明mysql.sh脚本执行将keepalived进行杀死了。而且进行了故障切换到了mysql-B服务器上面。
在另一台mysql服务器上,远程登录mysql集群(172.18.49.112)测试。
登录mysql-A和mysql-B新建一个远程用户。
mysql> grant all on . to [email protected]’%’ identified by ‘123456’;
mysql> flush privileges;
之后远程登录
mysql -uzs -p -h172.18.49.112 -P3306
mysql> show variables like ‘server_id’;
可以看到在客户端访问VIP地址,是由mysql-A提供响应的,现在将mysql-A上的mysql服务停止。之后执行
再次查看server_id:
自动变成2,说明了自动切换成功。