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

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

[root@yoon 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配置文件内容:
[root@back 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

[root@yoon 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

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

最新文章

  1. Mac下Jenkins+SVN+Xcode构建持续
  2. one to many
  3. CentOS 6中MATLAB print函数“所见非所得”bug的解决方案
  4. [java基础]循环结构2
  5. 使用GIT进行源码管理——GIT托管服务
  6. Linux设备驱动剖析之Input(四)
  7. linux多种安装包格式的安装方法
  8. Entity Framework(1)
  9. Log4Cplus的介绍
  10. HDU5889 Barricade(最短路)(网络流)
  11. 深刻理解Java中final的作用(一):从final的作用剖析String被设计成不可变类的深层原因
  12. POJ 1300 Door Man - from lanshui_Yang
  13. MTK平台Android中常用的路径
  14. java基础(十一章)
  15. Linux查看磁盘剩余空间
  16. 解释session
  17. nagios的安装与部署
  18. Mybatis动态排序问题
  19. 二、linux IO 编程---系统调用和POSIX标准和标准IO
  20. python中的*args和**kw

热门文章

  1. mysql表的创建和删除
  2. 20145102 《Java程序设计》第1周学习总结
  3. 10 Interesting Linux Command Line Tricks and Tips Worth Knowing
  4. js中关于原型的几个方法
  5. XenCenter删除SR失败解决方法
  6. JavaScript语言标识符和保留字
  7. 用java发送email邮件例子
  8. QQ截图工具提取
  9. linux install mpi4py
  10. STL--vector(转载)