从零开始的云计算生活——番外4,使用 Keepalived 实现 MySQL 高可用

目录

前言

一、架构原理​

​Keepalived 作用​

​MySQL 主从复制​

二、环境准备​ 

服务器要求​:

      安装基础软件​

三、配置 MySQL 主从复制

四、配置 Keepalived

主节点配置​(/etc/keepalived/keepalived.conf)

从节点配置

五、启动与验证

六、注意事项​


前言

        使用 Keepalived 实现 MySQL 高可用(HA)的核心是通过 ​虚拟 IP(VIP)漂移​ 在主节点故障时自动切换流量到备用节点,结合 MySQL 主从复制保证数据一致性。以下是详细步骤和配置说明:

一、架构原理

  1. Keepalived 作用

    • 基于 VRRP 协议管理 VIP,主节点正常时持有 VIP。
    • 通过健康检查脚本监控 MySQL 服务状态,若主节点故障,VIP 漂移到备用节点。
    • 客户端通过 VIP 访问 MySQL,无需感知后端节点切换
  2. MySQL 主从复制

    • 主节点(Master)处理写请求,从节点(Slave)同步数据。
    • 故障切换后,原从节点提升为新主节点(需配合复制配置或工具)

二、环境准备​ 

  1. 服务器要求​:

    • 两台 Linux 服务器(如 CentOS 7+),分别部署 MySQL 主从复制。
    • 示例 IP:
      • 主节点:192.168.71.177
      • 从节点:192.168.71.169
    • 虚拟 IP(VIP):192.168.71.100

      安装基础软件

# 在两台服务器上安装 MySQL 和 Keepalived
yum install -y mysql-server keepalived
systemctl enable mysqld keepalived

三、配置 MySQL 主从复制

创建了一个测试用的数据库

主节点配置​(my.cnf):

[mysqld]
server-id = 1
log-bin = /var/log/mysql/mysql-bin.log
binlog-do-db = your_database  # 需同步的数据库

从节点配置(my.cnf)

[mysqld]
server-id = 2
relay-log = /var/log/mysql/mysql-relay-bin

启动复制

-- 在主节点创建复制用户
CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';

-- 在从节点配置主库信息
CHANGE MASTER TO
  MASTER_HOST='192.168.71.177',
  MASTER_USER='repl',
  MASTER_PASSWORD='password';
START SLAVE;

验证同步:SHOW SLAVE STATUS\G 检查 Slave_IO_Running: Yes

四、配置 Keepalived

主节点配置​(/etc/keepalived/keepalived.conf

global_defs {router_id mysql_master  # 唯一标识,建议用主机名
}vrrp_script chk_mysql {script "/usr/bin/mysqladmin ping"  # MySQL 健康检查命令interval 2                          # 每 2 秒检查一次weight 2                            # 检查失败时降低优先级
}vrrp_instance VI_1 {state MASTERinterface eth0                      # 绑定 VIP 的网卡virtual_router_id 51                # 集群 ID,主从必须一致priority 100                        # 主节点优先级更高(范围 1-254)advert_int 1                        # 心跳间隔authentication {auth_type PASSauth_pass 1111                  # 主从密码需相同}virtual_ipaddress {192.168.71.100/24 dev eth0       # VIP 配置}track_script {chk_mysql                       # 引用健康检查脚本}notify_master "/path/to/promote_script.sh"  # 切换为主时执行的脚本(可选)
}

从节点配置

五、启动与验证

启动服务​:

故障转移测试​:

模拟主节点故障

观察 VIP 漂移​:
在从节点执行 ip addr,应看到 VIP 绑定到从节点网卡。

主:

从:

客户端连接测试​:

恢复主节点​:

  • 重启主节点 MySQL 后,若需切回 VIP,可手动重启主节点 Keepalived(或通过优先级调整)

此时从节点无法登录

六、注意事项

  1. 数据一致性风险​:
    • 主从复制延迟可能导致数据丢失。建议启用半同步复制(Semi-Sync Replication)或 GTID
  2. 脑裂问题​:
    • 确保 virtual_router_id 唯一,避免多个集群冲突
  3. 自动切换限制​:
    • Keepalived 仅负责 VIP 漂移,​不会自动切换 MySQL 主从角色。需配合脚本或工具(如 MHA、Orchestrator)实现完整故障转移
  4. 监控与告警​:
    • 配置 Keepalived 邮件通知(global_defs 区块),实时感知切换事件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/914707.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/914707.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

list类的常用接口实现及迭代器

目录 1. list类的介绍 2.list类的常用接口 2.1 list类的常用构造 2.2 list类对象的容量操作 2.3 list迭代器 2.4 list类的常用操作 3.list的模拟实现 1. list类的介绍 list代表的是双向链表,常见的有创建,增,删,改几个接口…

vscode Cline接入火山引擎的Deepseek R1

创建火山引擎Deepseek R1的API 在火山引擎管理控制台中创建Deepseek R1推理接入点(大模型),创建成功后会看到下图效果。在操作中选择API调用,在页面中选择OpenAI SDK,按照步骤找到baseUrl地址和API_KEY,后续…

新手向:自动化图片格式转换工具

大家好!今天我要分享一个非常实用的Python小工具——图片格式批量转换器。如果你经常需要处理大量不同格式的图片文件,或者需要统一图片格式以便于管理,那么这个工具将会成为你的得力助手!一、为什么需要图片格式转换?…

CUDA中的内存管理、锁页内存、UVA统一虚拟地址、零拷贝、统一内存

文章目录0 前言1 swap内存跟锁页内存2 UVA(Unified Virtual Addressing)统一虚拟地址3 先看最普通的cuda内存分配、释放、传输4 申请锁页内存4.1 cudaHostAllocDefault4.2 cudaHostAllocPortable4.3 cudaHostAllocWriteCombined4.3 cudaHostAllocMapped4.4 几种锁页内存总结4.5…

微服务环境下的灰度发布与金丝雀发布实战经验分享

微服务环境下的灰度发布与金丝雀发布实战经验分享 在大规模微服务架构中,如何平滑安全地上线新功能是每个后端团队的痛点。本文将结合生产环境中的真实案例,分享灰度发布(Gray Release)与金丝雀发布(Canary Release&am…

MEF 在 WPF 中的简单应用

MEF核心笔记MEF 的开发模式主要适用于插件化的业务场景中,C/S 和 B/S 中都有相应的使用场景,其中包括但不限于 ASP.NET MVC 、ASP WebForms、WPF、UWP 等开发框架。当然,DotNet Core 也是支持的。 以下是搜索到一些比较好的博文供参考&#…

Gitlab跑CICD的时候,maven镜像和pom.xml使用的maven版本冲突导致没办法build成功的解决方法

是这样的!最近遇到一个非常棘手的难题,我搞了大概2周时间才把他弄出来,因为自己搭了个私服的maven仓库,他不像maven官方仓库一样,可以跟nginx一样转的,所以遇到好几个难点!第一点:就…

Linux内核IPv4路由查找:LPC-Trie算法的深度实践

在互联网基础设施的核心领域,路由查找性能直接决定了网络转发效率。Linux内核作为现代网络系统的基石,其IPv4路由子系统采用了一种名为LPC-Trie(Level-Compressed Trie) 的创新数据结构,在net/ipv4/fib_trie.c文件中实现了高效的路由管理方案。本文将深入剖析这一机制的设…

【设计模式】装饰(器)模式 透明装饰模式与半透明装饰模式

装饰模式(Decorator Pattern)详解一、装饰模式简介 装饰模式(Decorator Pattern) 是一种 结构型设计模式,它允许你动态地给对象添加行为或职责,而无需修改其源代码,也不需要使用继承来扩展功能。…

NAT原理与实验指南:网络地址转换技术解析与实践

NAT实验 NAT(Network Address Translation,网络地址转换): NAT技术的介绍: 随着Internet用户的快速增长,以及地址分配不均等因素,IPv4地址(约40亿的空间地址)已经陷入不…

设计模式之【观察者模式】

目录 观察者模式中的角色 通过一个简单案例来演示观察者模式 被观察者接口 事件类型 up主类作为被观察者 观察者接口 粉丝类作为观察者 测试 测试结果 观察者模式中的角色 被观察者(observable)观察者(observer) 通过一个简单案例来演示观察者模式 被观察者接口 /*…

Linux sudo host权限提升漏洞(CVE-2025-32462)复现与原理分析

免责声明 本文所述漏洞复现方法仅供安全研究及授权测试使用; 任何个人/组织须在合法合规前提下实施,严禁用于非法目的; 作者不对任何滥用行为及后果负责,如发现新漏洞请及时联系厂商并遵循漏洞披露规则。 漏洞简述 Linux sudo是l…

【uni-ui】hbuilderx的uniapp 配置 -小程序左滑出现删除等功能

1.网址:https://ext.dcloud.net.cn/plugin?id181](https://ext.dcloud.net.cn/plugin?id181) 2.csdn讲解:https://blog.csdn.net/qq_40323256/article/details/114337128 3.uni-ui git:https://github.com/dcloudio/uni-ui 4.官方网址文档&…

记一次POST请求中URL中文参数乱码问题的解决方案

POST请求中URL中文参数乱码前言:一个常见的开发痛点一、问题现象与原因深度解析1. 典型问题场景2. 根本原因分析URL编码规范问题:编码解码过程不一致:IE浏览器特殊行为:二、前端解决方案1. 手动编码URL参数(推荐&#…

从存储热迁移流程了解 QEMU block layer

文章目录存储热迁移流程总体流程代码路径QEMU Block layer架构简述Block Job结构体设计状态转换Mirror block job拓扑结构构建过程数据结构存储热迁移流程 总体流程 Libvirt migrate 命令提供 copy-storage-all 选项支持存储热迁移,相应地,Libvirt 热迁…

【设计模式】命令模式 (动作(Action)模式或事务(Transaction)模式)宏命令

命令模式(Command Pattern)详解一、命令模式简介 命令模式(Command Pattern) 是一种 行为型设计模式(对象行为型模式),它将一个请求封装为一个对象,从而使你可以用不同的请求对客户进…

HTML5智能排班日历:动态排班一目了然

这个日历将具备以下功能: 显示一个标准的月度日历视图。可以自由切换上一个月和下一个月。在日历的每一天自动显示当天值班的人员。您可以很方便地在文件中修改值班人员列表和排班的起始日期。包括:动态生成日历网格处理月份切换根据排班规则计算并显示每天的值班人员<!DO…

深度剖析C++生态系统:一门老牌语言如何在开源浪潮中焕发新生?

&#x1f4dd;个人主页&#x1f339;&#xff1a;慌ZHANG-CSDN博客 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 一、前言&#xff1a;C的“长寿秘诀”是什么&#xff1f; C 诞生已超过 40 年。它经历了桌面应用、互联网爆发、移动时代&#xff0c;再…

60个功能OfficeBox 万彩办公大师:PDF 格式转换 OCR识别免费无广告

各位办公小能手们&#xff01;今天给大家介绍个超厉害的免费办公工具套装——OfficeBox万彩办公大师&#xff0c;是广州万彩科技整出来的。软件下载地址安装包 它里面有60多个没广告的绿色组件&#xff0c;简直像个百宝箱&#xff01;涵盖了PDF处理、格式转换、OCR识别、屏幕录…

拥抱主权AI:OpenCSG驱动智能体运营,共筑新加坡智能高地

2025年7月11日&#xff0c;由Linux基金会AI & Data、TikTok及LF Edge联合主办的 【LF AI & Data Day Singapore 2025】 在新加坡TikTok总部盛大启幕。本次大会以“Agent for SWE”为核心议题&#xff0c;汇聚全球顶尖AI开发者、企业领袖及开源社区先锋。作为国家主权AI…