当前位置: 首页 > news >正文

从零开始的云计算生活——番外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.xdnf.cn/news/1132561.html

相关文章:

  • xss-lab1-8关
  • AWS ML Specialist 考试备考指南
  • Liunx练习项目6-创建dns服务器
  • 图机器学习(10)——监督学习中的图神经网络
  • AI Agent开发学习系列 - langchain之LCEL(1):LangChain LCEL链式编排与RAG增强实践
  • 新手向:自动化图片格式转换工具
  • orfeotoolbox ResetMargin
  • 硬件设计学习DAY3——电源Buck电路深度解析:CCM/DCM/BCM模式与电感设计
  • Linux运维新手的修炼手扎之第21天
  • 【论文阅读】A Survey on Knowledge-Oriented Retrieval-Augmented Generation(4)
  • Kotlin比较接口
  • Kotlin获取集合中的元素操作
  • 力扣-146.LRU缓存机制
  • Xsens人形机器人拟人动作AI训练,提升机器人工作精度与效率
  • MybatisPlus-11.IService的批量新增
  • 高性能架构模式——高性能缓存架构
  • alpineLinux修改包管理为国内源
  • 【Linux】基本指令详解(二) 输入\输出重定向、一切皆文件、认识管道、man、cp、mv、echo、cat
  • LVS集群搭建
  • OpenCV稠密光流估计的一个类cv::optflow::DenseRLOFOpticalFlow
  • [AI-video] 字幕服务 | 视频素材服务 | 视频生成服务
  • 智能电网时代:双向WiFi电表在海外家庭能源中的战略价值
  • C++---emplace_back与push_back
  • 网络爬虫的相关知识和操作
  • lazyvim恢复gt键
  • 项目流程管理系统使用建议:推荐13款
  • 【27】MFC入门到精通——MFC 修改用户界面登录IP IP Address Control
  • DHTMLX Suite 9.2 重磅发布:支持历史记录、类Excel交互、剪贴板、拖放增强等多项升级
  • AWS IAM 最佳安全实践通用指南
  • 随机链表的复制数据结构oj题(力口138)