数据库安装和升级和双主配置的操作可以参考我的另一篇文章:
数据库安装和升级和双主配置

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;成为异步通信…