天天看點

配置keepalive實作mysql雙主高可用

配置keepalive實作mysql雙主高可用

1.安裝keepalive

2。配置keepalive

global_defs {

  notification_email {

    [email protected]

    [email protected]

    [email protected]

   }

   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

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

if [ $MYSQL_OK -eq 0 ] &&  [ $CHECK_TIME -eq 0 ]

then

/etc/init.d/keepalived stop

exit 1

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,如需轉載請自行聯系原作者