通過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
並在備用伺服器上也建立同樣的指令碼
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
並在備用伺服器上也建立同樣的指令碼
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28939273/viewspace-1810965/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL Orchestrator自動導換+VIP切換MySql
- Redis主從複製 - 通過Keepalived實現Redis Failover自動故障切換功能RedisAI
- keepalived與mysql主主叢集自動切換MySql
- Django通過session實現多語言切換DjangoSession
- Mysql+keepalived主主切換薦MySql
- postgresql10主從+keepalived高可用自動切換(切換關鍵在指令碼)SQL指令碼
- Dledger是如何實現主從自動切換的
- 5.6 MySql主從自動切換指令碼MySql指令碼
- mysql mha 主從自動切換 高可用MySql
- nginx keepalived 主從切換Nginx
- 簡單批處理,實現ip地址的自動切換
- RAC的VIP切換測試
- mysql 5.7+keepalived主從切換步驟簡述MySql
- MySQL雙機互備熱備自動切換KVMySql
- keepalived配置redis主從切換Redis
- 實現隨著滾動條滾動,導航會自動切換的效果
- flutter 暗黑模式切換過渡動畫實現Flutter模式動畫
- 實現自動切換主題的 VSCode 擴充套件VSCode套件
- 如何自動實現360瀏覽器渲染核心的切換效果瀏覽器
- DRBD+Pacemaker實現DRBD主從角色的自動切換薦
- 通過 Spring AOP 註解實現自動代理Spring
- MHA實現mysql主從資料庫手動切換的方法MySql資料庫
- MYSQL5.6主從+keepalive高可用自動切換MySql
- keepalived(二)vip漂移
- ViewPager(通過反射修改viewpager切換速度)Viewpager反射
- 通過expect實現ssh協議自動輸密碼協議密碼
- vue-video-player,通過自定義按鈕元件實現全屏切換效果VueIDE元件
- 通過自動化和現代化實現網路優化優化
- keepalived+MySQL實現高可用MySql
- 利用Keepalived實現MySQL高可用MySql
- 安卓-自動切換APP圖示安卓APP
- Auto.JS實現抖音,刷寶等刷視訊app,自動點贊,自動滑屏,自動切換視訊JSAPP
- Mysql MHA部署-06手動切換MySql
- 如何透過css變數實現主題切換?CSS變數
- 安卓開發:viewpager + fragment 實現滑動切換安卓ViewpagerFragment
- MVVM框架下實現左右滑動切換tabMVVM框架
- Laravel 通過 Macros 實現列印原生 MySQLLaravelMacROSMySql
- MySQL高可用架構:mysql+keepalived實現MySql架構