mysql雙主模式下基于keepalived的虛擬ip實現高可用模式搭建

數據庫安裝和升級和雙主配置的操作可以參考我的另一篇文章:
數據庫安裝和升級和雙主配置

1、在兩臺服務器都下載和安裝keepalived

下載:
yumdownloader --resolve keepalived
下載后得到:

[root@localhost keepalivedRpm]# ll
總用量 1896
-rw-r--r--. 1 root root  39568 8月  23 2019 ipset-7.1-1.el7.x86_64.rpm
-rw-r--r--. 1 root root  65112 8月  23 2019 ipset-libs-7.1-1.el7.x86_64.rpm
-rw-r--r--. 1 root root 339840 10月 15 2020 keepalived-1.3.5-19.el7.x86_64.rpm
-rw-r--r--. 1 root root 723960 1月  26 2024 net-snmp-agent-libs-5.7.2-49.el7_9.4.x86_64.rpm
-rw-r--r--. 1 root root 770000 1月  26 2024 net-snmp-libs-5.7.2-49.el7_9.4.x86_64.rpm

安裝:
rpm -ivh keepalived*
遇到報錯后,提示哪個就先安裝哪個。

安裝完成后,查看版本:
rpm -qa | grep keepalived # 應輸出 keepalived 版本號

2、配置keepalived

第一臺:
vi /etc/keepalived/keepalived.conf

global_defs {router_id MYSQL_MASTER1  # 唯一標識符
}vrrp_script chk_mysql {script "/etc/keepalived/check_mysql.sh"  # 檢查 MySQL 進程是否存在user root   # 確保使用 root 用戶或存在的用戶
#   weight -20  # 失敗后降低的優先級interval 2                                # 每3秒檢測一次timeout 2                                 # 超時時間fall 1                                    # 失敗x次則切換rise 1                                    # 成功x次認為恢復
}vrrp_instance VI_1 {state MASTER          # 從庫設為 BACKUPinterface enp0s3        # 替換為你的網卡名稱(如 ens192)virtual_router_id 51   # 與集群內其他節點一致priority 100          # 主庫優先級高于從庫(如 100,從庫設為 90)advert_int 1         # 心跳間隔(秒)authentication {auth_type PASSauth_pass 1111    # 集群內節點密碼一致}virtual_ipaddress {192.168.0.233/24  # 你的 VIP 地址}track_script {chk_mysql}
}

第二臺:

global_defs {router_id MYSQL_MASTER2  # 唯一標識符
}vrrp_script chk_mysql {script "/etc/keepalived/check_mysql.sh"  # 檢查 MySQL 進程是否存在user root   # 確保使用 root 用戶或存在的用戶
#   weight -20  # 失敗后降低的優先級interval 2                                # 每3秒檢測一次timeout 2                                 # 超時時間fall 1                                    # 失敗3次則切換rise 1                                    # 成功2次認為恢復
}vrrp_instance VI_1 {state BACKUP          # 初始狀態為BACKUPinterface enp0s3        # 替換為你的網卡名稱(如 ens192)virtual_router_id 51  # 與集群內其他節點一致priority 90          # 主庫優先級高于從庫(如 100,從庫設為 90)advert_int 1        # VRRP通告間隔authentication {auth_type PASSauth_pass 1111    # 集群內節點密碼一致}virtual_ipaddress {192.168.0.233/24  # 你的 VIP 地址}track_script {chk_mysql}
}

chk_mysql腳本如下:
vi /etc/keepalived/check_mysql.sh

#!/bin/bash
# 檢查MySQL服務是否運行
if ! pgrep -x "mysqld" > /dev/null; thenecho 1exit 1
fi
echo 0
exit 0

賦予執行權限:
chmod +x /etc/keepalived/check_mysql.sh

3、啟動keepalived

兩臺服務器都啟動:

systemctl start keepalived
systemctl enable keepalived

查看 VIP 是否生效:
ip addr show

4、測試vip的自動切換

連接虛擬ip,然后停止一臺mysql
systemctl stop mysqld
經過實測,停止后切換的時候可能會連接失敗一次,然后就恢復正常。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/83393.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/83393.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/83393.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

展會聚焦丨漫途科技亮相2025西北水務博覽會!

2025第三屆西北水務數字化發展論壇暨供排水節水灌溉新技術設備博覽會在蘭州甘肅國際會展中心圓滿落幕。本屆展會以“科技賦能水資源,數智引領新動能”為主題,活動匯集水務集團、科研院所、技術供應商等全產業鏈參與者,旨在通過前沿技術展示與…

單調棧(打卡)

本篇基于b站靈茶山艾府。 下面是靈神上課講解的題目與課后作業,課后作業還有三道實在寫不下去了,下次再寫。 739. 每日溫度 給定一個整數數組 temperatures ,表示每天的溫度,返回一個數組 answer ,其中 answer[i] 是…

【機器學習基礎】機器學習入門核心算法:層次聚類算法(AGNES算法和 DIANA算法)

機器學習入門核心算法:層次聚類算法(AGNES算法和 DIANA算法) 一、算法邏輯二、算法原理與數學推導1. 距離度量2. 簇間距離計算(連接標準)3. 算法偽代碼(凝聚式) 三、模型評估1. 內部評估指標2. …

已有的前端項目打包到tauri運行(windows)

1.打包前端項目產生靜態html、css、js 我們接下來用vue3 vite編寫一個番茄鐘案例來演示。 我們執行npm run build 命令產生的dist目錄下的靜態文件。 2.創建tarui項目 npm create tauri-applatest一路回車,直到出現。 3.啟動運行 我們將打包產生的dist目錄下的…

Unity3D仿星露谷物語開發55之保存地面屬性到文件

1、目標 將游戲保存到文件,并從文件中加載游戲。 Player在游戲中種植的Crop,我們希望保存到文件中,當游戲重新加載時Crop的GridProperty數據仍然存在。這次主要實現保存地面屬性(GridProperties)信息。 我們要做的是…

Java面試:企業協同SaaS中的技術挑戰與解決方案

Java面試:企業協同SaaS中的技術挑戰與解決方案 面試場景 在一家知名互聯網大廠,面試官老王正在對一位應聘企業協同SaaS開發職位的程序員謝飛機進行技術面試。 第一輪提問:基礎技術 老王:謝飛機,你好。首先&#xf…

SQL注入速查表(含不同數據庫攻擊方式與差異對比)

1. 字符串連接 字符串連接是SQL注入中常用的操作,用于將多個字符串拼接為一個,以構造復雜的注入語句。不同數據庫的字符串連接語法存在顯著差異,了解這些差異有助于精準構造payload。 Oracle:使用||操作符進行字符串連接&#xf…

uni-data-picker級聯選擇器、fastadmin后端api

記錄一個部門及部門人員選擇的功能,效果如下: 組件用到了uni-ui的級聯選擇uni-data-picker 開發文檔:uni-app官網 組件要求的數據格式如下: 后端使用的是fastadmin,需要用到fastadmin自帶的tree類生成部門樹 &#x…

Mac電腦上本地安裝 redis并配置開啟自啟完整流程

文章目錄 一、安裝 Redis方法 1:通過源碼編譯安裝(推薦)方法 2:通過 Homebrew 安裝(可選) 二、配置 Redis1. 創建配置文件和數據目錄2. 修改配置文件 三、配置開機自啟1、通過 launchd 系統服務&#xff08…

wsl安裝linux

安裝wsl 啟用適用于 Linux 的 Windows 子系統 以管理員身份打開 PowerShell (> PowerShell > 右鍵單擊 > 以管理員身份運行) 并輸入以下命令,然后重啟 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsyste…

OpenGL 3D 編程

OpenGL 是一個強大的跨平臺圖形 API,用于渲染 2D 和 3D 圖形。以下是 OpenGL 3D 編程的入門基礎。 一. 環境設置 安裝必要的庫 GLFW: 用于創建窗口和處理輸入 GLEW 或 GLAD: 用于加載 OpenGL 函數 GLM: 數學庫,用于 3D 變換 // 基本 OpenGL 程序結構示例 #include <GL/g…

Android基于LiquidFun引擎實現軟體碰撞效果

一、實現效果 Android使用LiquidFun物理引擎實現果凍碰撞效果 二、Android代碼 // 加載liquidfun動態庫static {System.loadLibrary("liquidfun");System.loadLibrary("liquidfun_jni");}class ParticleData {long id;ParticleSystem particleSystem;float…

Redis持久化機制詳解:RDB與AOF的深度剖析

一、為什么需要持久化&#xff1f; Redis作為內存數據庫&#xff0c;數據存儲在易失性內存中。持久化機制解決兩大核心問題&#xff1a; 數據安全&#xff1a;防止服務器宕機導致數據丟失災難恢復&#xff1a;支持數據備份與快速重建 二、RDB&#xff1a;內存快照持久化 ? …

Netty學習example示例

文章目錄 simpleServer端NettyServerNettyServerHandler Client端NettyClientNettyClientHandler tcp&#xff08;粘包和拆包&#xff09;Server端NettyTcpServerNettyTcpServerHandler Client端NettyTcpClientNettyTcpClientHandler protocolcodecCustomMessageDecoderCustomM…

ThreadLocal ,底層原理,強引用,弱引用,內存泄漏

目錄 ThreadLocal的基本概念 底層實現原理 強引用與弱引用 內存泄漏問題 內存泄漏的解決方案 示例代碼 ThreadLocal的基本概念 ThreadLocal是Java中的一個類&#xff0c;位于java.lang包下&#xff0c;它提供了線程局部變量的功能。每個使用該變量的線程都有自己獨立的初…

TomSolver 庫 | config詳解及其測試

一、C 關鍵特性解析 1. enum class 強類型枚舉 enum class LogLevel { OFF, FATAL, ERROR, WARN, INFO, DEBUG, TRACE, ALL }; enum class NonlinearMethod { NEWTON_RAPHSON, LM };核心特性&#xff1a; 類型安全&#xff1a;禁止隱式轉換為整數作用域限定&#xff1a;必須…

【DB2】ERRORCODE=-4499, SQLSTATE=08001

客戶在連接DB2壓測時報錯ERRORCODE-4499, SQLSTATE08001&#xff0c;連接失敗&#xff0c;主要是因為通信失敗 在本地進行復現&#xff0c;用DBeaver代替java程序&#xff0c;將DB2COMM從TCPIP置為空&#xff0c;重啟后重新連接&#xff0c;報一樣的錯誤 而將防火墻開啟&…

MicroPython+L298N+ESP32控制電機轉速

要使用MicroPython控制L298N電機驅動板來控制電機的轉速&#xff0c;你可以通過PWM&#xff08;脈沖寬度調制&#xff09;信號來調節電機速度。L298N是一個雙H橋驅動器&#xff0c;可以同時控制兩個電機的正反轉和速度。 硬件準備&#xff1a; 1. L298N 電機控制板 2. ESP32…

WPF 全局加載界面、多界面實現漸變過渡效果

WPF 全局加載界面與漸變過渡效果 完整實現方案 MainWindow.xaml <Window x:Class"LoadingScreenDemo.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml&quo…

RabbitMQ深度解析:從基礎實踐到高階架構設計

引言?? 在分布式系統與微服務架構主導的現代軟件開發中&#xff0c;服務間通信的可靠性、異步處理能力及流量管控成為核心挑戰。??RabbitMQ??作為基于AMQP協議的企業級消息中間件&#xff0c;憑借其靈活的路由機制、高可用架構與豐富的擴展能力&#xff0c;成為異步通信…