当前位置: 首页 > news >正文

通过keepalived实现 MySQL VIP 自动切换

首先配置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

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

转载于:https://www.cnblogs.com/hankyoon/p/5169695.html

相关文章:

  • Swift - 37 - 值类型和引用类型的简单理解
  • 算法导论 第六章 2 优先队列(python)
  • gdb跟踪应用程序原理浅析
  • ORACLE 11G内存管理方式
  • 正则表达式总结
  • Cocos2d-js使用ETC1格式的图片
  • 2015年年终总结
  • Java实现多线程邮件发送
  • [算法]需要排序的最短子数组长度
  • 面向对象编程(十四)——面向对象三大特性之多态①
  • 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。...
  • java设计模式之——适配器模式
  • 工具-常用工具
  • [Flex] PopUpButton系列 —— 控制弹出菜单的透明度、可用、可选择状态
  • javascript 变量声明有var与无var 的区别
  • [NodeJS] 关于Buffer
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • android图片蒙层
  • HTML中设置input等文本框为不可操作
  • JavaScript 一些 DOM 的知识点
  • Mybatis初体验
  • Mysql数据库的条件查询语句
  • 和 || 运算
  • 实习面试笔记
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 我的面试准备过程--容器(更新中)
  • gunicorn工作原理
  • MyCAT水平分库
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • ​TypeScript都不会用,也敢说会前端?
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (九)c52学习之旅-定时器
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (转)shell中括号的特殊用法 linux if多条件判断
  • (转)visual stdio 书签功能介绍
  • .naturalWidth 和naturalHeight属性,
  • .NET Core Web APi类库如何内嵌运行?
  • .net core控制台应用程序初识
  • .NET4.0并行计算技术基础(1)
  • .vollhavhelp-V-XXXXXXXX勒索病毒的最新威胁:如何恢复您的数据?
  • .vue文件怎么使用_vue调试工具vue-devtools的安装
  • [2019.3.20]BZOJ4573 [Zjoi2016]大森林
  • [C++][数据结构][算法]单链式结构的深拷贝
  • [Flexbox] Using order to rearrange flexbox children
  • [HEOI2013]ALO
  • [hive] sql中distinct的用法和注意事项
  • [HTML]Web前端开发技术6(HTML5、CSS3、JavaScript )DIV与SPAN,盒模型,Overflow——喵喵画网页
  • [IE编程] 打开/关闭IE8的光标浏览模式(Caret Browsing)
  • [java后端研发]——文件上传与下载(2种方式)
  • [leetcode 数位计算]2520. 统计能整除数字的位数
  • [leetcode] 103. 二叉树的锯齿形层次遍历