通过keepalived实现 MySQL VIP 自动切换

首先配置keepalived。链接如下:
http://blog.itpub.net/28939273/viewspace-1808369/

主服务器keepalived的配置文件内容如下:

[[email protected] keepalived]# cat keepalived.conf 
vrrp_script check_mysql_port {
    script "/etc/keepalived/keepalived_check_mysql.sh"    
    interval 1
    weight -10
}

global_defs {
    router_id MYSQL_YOON
}

vrrp_instance mysql_yoon_master {
    state MASTER
    interface eth0
    virtual_router_id 245
    priority 100
    advert_int 1

authentication {
        auth_type PASS
        auth_pass mysql_yoon
    }

virtual_ipaddress {
        172.16.232.245
    }

track_script {
        check_mysql_port
    }
}

备用服务器keepalived配置文件内容:
[[email protected] keepalived]# cat keepalived.conf 
vrrp_script check_mysql_port {
    script "/etc/keepalived/keepalived_check_mysql.sh"
    interval 1
    weight -10
}

global_defs {
    router_id MYSQL_YOON
}

vrrp_instance mysql_yoon_master {
    state MASTER
    interface eth0
    virtual_router_id 245
    priority 90
    advert_int 1

authentication {
        auth_type PASS
        auth_pass mysql_yoon
    }

virtual_ipaddress {
        172.16.232.245
    }

track_script {
        check_mysql_port
    }
}

在/etc/keepalived/下创建keepalived_check_mysql.sh

[[email protected] keepalived]# vi keepalived_check_mysql.sh 
#!/bin/bash
MYSQL=/export/servers/mysql/bin/mysql
MYSQL_HOST=127.0.0.1       #如何在执行过程中,keepalived进程莫名自动关闭的话,尝试将127.0.0.1改成localhost,我是由localhsot改成了127.0.0.1才可以,一定要注意
MYSQL_USER=root
MYSQL_PASSWORD=yoon
CHECK_TIME=3
#mysql  is working MYSQL_OK is 1 , mysql down MYSQL_OK is 0
MYSQL_OK=1
function check_mysql_helth (){
    $MYSQL -h $MYSQL_HOST -u $MYSQL_USER -p${MYSQL_PASSWORD} -e "show status;" >/dev/null 2>&1
    if [ $? = 0 ] ;then
    MYSQL_OK=1
    else
    MYSQL_OK=0
    fi
    return $MYSQL_OK
}
while [ $CHECK_TIME -ne 0 ]
do
    let "CHECK_TIME -= 1"
    check_mysql_helth
if [ $MYSQL_OK = 1 ] ; then
    CHECK_TIME=0
    exit 0
fi
if [ $MYSQL_OK -eq 0 ] &&  [ $CHECK_TIME -eq 0 ]
then
    /etc/init.d/keepalived stop
    exit 1
fi
sleep 1
done

并在备用服务器上也创建同样的脚本

时间: 2024-10-27 13:55:07

通过keepalived实现 MySQL VIP 自动切换的相关文章

keepalived实现对mysql主从复制的主备自动切换

备注:君子性非议也,善假于物也. 温故而知新,可以为师矣. 使用MySQL+keepalived是一种非常好的解决方案,在MySQL-HA环境中,MySQL互为主从关系,这样就保证了两台 MySQL数据的一致性,然后用keepalived实现虚拟IP,通过keepalived自带的服务监控功能来实现MySQL故障时自动切换. 实验环境中用两台主机搭建了一个mysql主从复制的环境,两台机器分别安装了keepalived,用一个虚IP实现mysql服务器的主备自动切换功能. 模拟环境: VIP:1

0120Keeplived实现自动切换Mysql服务

转自http://biancheng.dnbcw.info/mysql/381020.html Keepalived+mysql 自动切换网络结构:VIP 192.168.88.200mysq11 192.168.88.130 主mysql2 192.168.88.131 备一 mysql 主主同步二 安装keepalived 三 keepalived 主备配置文件四 mysql状态检测脚本/root/keepalived_check_mysql.sh五 防火墙设置 六 启动keepalived

新版keeplived + MySQL双主自动切换

### 新版keeplived + MySQL双主自动切换 ###参考网址: http://biancheng.dnbcw.info/mysql/381020.html###一.网络结构  ###    VIP 10.125.141.249    mysq1m1 10.125.141.138 主1(相对而言是主库)    mysqlm2 192.168.88.131 主2(相对而言是备库)### 二.主要步骤 ###    一 mysql 主主同步    二 安装keepalived     三

【转】双机高可用、负载均衡、MySQL(读写分离、主从自动切换)架构设计

架构简介 前几天网友来信说帮忙实现这样一个架构:只有两台机器,需要实现其中一台死机之后另一台能接管这台机器的服务,并且在两台机器正常服务时,两台机器都能用上.于是设计了如下的架构.此架构主要是由keepalived实现双机高可用,维护了一个外网VIP,一个内网VIP.正常情况时,外网VIP和内网VIP都绑定在server1服务器,web请求发送到server1的nginx,nginx对于静态资源请求就直接在本机检索并返回,对于php的动态请求,则负载均衡到server1和server2.对于SQ

双机高可用、负载均衡、MySQL(读写分离、主从自动切换)架构设计

前几天网友来信说帮忙实现这样一个架构:只有两台机器,需要实现其中一台死机之后另一台能接管这台机器的服务,并且在两台机器正常服务时,两台机器都能用上.于是设计了如下的架构. 架构简介 此架构主要是由keepalived实现双机高可用,维护了一个外网VIP,一个内网VIP.正常情况时,外网VIP和内网VIP都绑定在server1服务器,web请求发送到server1的Nginx,nginx对于静态资源请求就直接在本机检索并返回,对于PHP的动态请求,则负载均衡到server1和server2.对于S

redis主从配置及通过keepalived实现redis自动切换高可用

一:环境介绍: Master: 192.168.1.4 Slave: 192.168.1.5 Virtural IP Address (VIP): 192.168.1.253 二:设计思路: 当 Master 与 Slave 均运作正常时, Master负责服务,Slave负责Standby: 当 Master 挂掉,Slave 正时, Slave接管服务,同时关闭主从复制功能: 当 Master 恢复正常,则从Slave同步数据,同步数据之后关闭主从复制功能,恢复Master身份,于此同时Sl

Mycat在MySQL主从模式(1主1从)下读写分离和及自动切换模式的验证

实验环境 两台Centos7  MySQL5.7.12 IP地址为:192.168.10.36  192.168.10.37 一台Centos7 Mycat IP地址为:192.168.10.31 一:安装mysql,如下图所示(这里采用yum安装): 二:配置MYSQL,以及建立MYSQL主从 1:初始化密码,由于我没在/root目录下找到第一次启动的随机密码,所以我只能用如下操作 vi /etc/my.cnf mysqd 字段添加 #skip-grant-tables 然后重启mysql  

MySQL 主主复制 + LVS + Keepalived 实现 MySQL 高可用性

MySQL复制能够保证数据的冗余的同时可以做读写分离来分担系统压力,如果是主主复制还可以很好的避免主节点的单点故障.但是MySQL主主复制存在一些问题无法满足我们的实际需要:未提供统一访问入口来实现负载均衡,如果其中master宕掉的话需要手动切换到另外一个master,而不能自动进行切换. 这篇文章下面要介绍如何通过LVS+Keepalived的方式来是实现MySQL的高可用性,同时解决以上问题. Keepalived和LVS介绍 Keepalived是一个基于VRRP(虚拟路由冗余协议)可用

基于keepalived搭建MySQL的高可用集群

http://www.cnblogs.com/ivictor/p/5522383.html 基于keepalived搭建MySQL的高可用集群 MySQL的高可用方案一般有如下几种: keepalived+双主,MHA,MMM,Heartbeat+DRBD,PXC,Galera Cluster 比较常用的是keepalived+双主,MHA和PXC. 对于小公司,一般推荐使用keepalived+双主,简单. 下面来部署一下 配置环境: 角色