配置keepalive实现mysql双主高可用-阿里云开发者社区

开发者社区> 数据库> 正文
登录阅读全文

配置keepalive实现mysql双主高可用

简介:

配置keepalive实现mysql双主高可用

1.安装keepalive

 

2。配置keepalive

global_defs {

  notification_email {

    acassen@firewall.loc

    failover@firewall.loc

    sysadmin@firewall.loc

   }

   router_idmysql_ha

}

vrrp_script check_mysqld {

        script"/etc/keepalived/mysqlcheck/keepalived_check_mysql.sh "

        interval 2

}

 

vrrp_instance HA_1 {

    state BACKUP

    interface eth0

   virtual_router_id 51

    priority 100

    advert_int 1

    nopreempt

    authentication{

        auth_typePASS

        auth_pass1111

    }

track_script {

        check_mysqld

}

   virtual_ipaddress {

       192.168.32.100/24 dev eth0

    }

}

 

两个keepalive的state都设置为BACKUP

 

检查mysql脚本keepalived_check_mysql.sh

#!/bin/bash

MYSQL=/usr/bin/mysql

MYSQL_HOST=localhost

MYSQL_USER=root

MYSQL_PASSWORD=www.123

CHECK_TIME=3

#mysql  is workingMYSQL_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

 

/etc/init.d/keepalived start

 

测试高可用:关掉DB1的mysql时.他的vip会飘到DB2

 

测试mysql主从同步功能

 

1.在远程客户端通过vip登录测试

 

2.数据复制功能测试

在DB1中创建了一个数据库。在DB2查看是否有这个数据库



本文转自 shouhou2581314 51CTO博客,原文链接:http://blog.51cto.com/thedream/1654372,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: