mysql高可用之keepalived与mysql一主一从

该方法实现一主一从的高可用,当检测主机mysql挂掉后,keepalive自动选择另一台权重高且可用的从机作为主机,并把这台新的主机作为数据库master.(后期还就应实现,从库的只读权限,从库变主库后同时变成有写权限)

1.mysql一主一从请看前文章http://wp.tanguu.com/2016/09/15/mysql主从复制(超简单)/

2.keepalive,安装

3.主机(同时也是mysql主库)
vrrp_instance VI_1 {
state MASTER #
interface eth0
virtual_router_id 51
priority 100 #优先级,另一台改为90,数值越大,权重越大
advert_int 1
nopreempt #不抢占,只在优先级高的机器上设置即可,优先级低的机器不设置
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.13
}
}

virtual_server 192.168.1.200 3306 {
delay_loop 2 #每个2秒检查一次real_server状态
lb_algo wrr #LVS算法
lb_kind DR #LVS模式
persistence_timeout 60 #会话保持时间
protocol TCP
real_server 192.168.1.13 3306 {
weight 3
notify_down /root/MySQL.sh #检测到服务down后执行的脚本
TCP_CHECK {
connect_timeout 10 #连接超时时间
nb_get_retry 3 #重连次数
delay_before_retry 3 #重连间隔时间
connect_port 3306 #健康检查端口
}
}
}
其中MySQL.sh脚本内容,记得#chmod +x /root/MySQL.sh :
#!/bin/sh
pkill keepalived #强制停止keepalived
mysql -h192.168.1.13 -e “GRANT REPLICATION SLAVE ON *.* to mysync@’%'” #跟随keepalie新选择的新主机,登录mysql,并授权数据库Master权限

4.从机数据库中添加用户mysync@’%'”