0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CentOS 7下MySQL 8双主热备高可用架构全解

佳佳 来源:jf_36786605 作者:jf_36786605 2025-08-12 17:08 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Centos7部署MySQL8+keepalived双主热备(含Keepalived配置与GTID同步优化方案)
架构拓扑原理
GTID同步 VIP 192.168.1.100 MySQL主节点1 MySQL主节点2
核心逻辑:
通过Keepalived实现VIP漂移
双向GTID同步保证数据一致性
双写模式需配合应用层冲突解决机制
MySQL 8部署流程
▶ 步骤1:官方源配置
wget https://repo.mysql.com//mysql80-community-release-el7-7.noarch.rpm
sudo rpm -Uvh mysql80-community-release-el7-7.noarch.rpm

⚠️ 注意:
确认EL7版本与CentOS 7兼容
国内镜像加速可替换为华为云源
安装前执行 yum clean all && yum makecache
▶ 步骤2:安装与服务启动
sudo yum install mysql-community-server
sudo systemctl enable --now mysqld

安全初始化:
# 查看临时密码
grep 'temporary password' /var/log/mysqtd.log
# 执行安全脚本
mysql_secure_installation

密码策略说明:
策略项 默认值 修改建议,密码长度 8字符 ≥12字符,特殊字符 必需 维持强校验,密码过期 180天 生产环境建议90天
双主同步配置
节点1配置(192.168.1.10)
# /etc/my.cnf
[mysqld]
server-id=1
log-bin=mysql-bin
binlog_format=ROW
gtid_mode=ON
enforce_gtid_consistency=ON
binlog_do_db=需要同步的数据库名
auto_increment_increment=2 # 双主必须配置
auto_increment_offset=1

节点2配置(192.168.1.11)
auto_increment_increment=2
auto_increment_offset=2 # 确保自增ID不冲突

▶ 授权同步账户
-- 在两台服务器分别执行
CREATE USER 'sync_user'@'%' IDENTIFIED BY 'V3ryS3cure!P@ss';
GRANT REPLICATION SLAVE ON *.* TO 'sync_user'@'%';
ALTER USER 'sync_user'@'%' IDENTIFIED WITH mysql_native_password BY 'V3ryS3cure!P@ss';

▶ 建立双向通道
-- 在节点1执行
CHANGE MASTER TO
MASTER_HOST='192.168.1.11',
MASTER_USER='sync_user',
MASTER_PASSWORD='V3ryS3cure!P@ss',
MASTER_AUTO_POSITION=1;
-- 在节点2执行
CHANGE MASTER TO
MASTER_HOST='192.168.1.10',
MASTER_USER='sync_user',
MASTER_PASSWORD='V3ryS3cure!P@ss',
MASTER_AUTO_POSITION=1;
START SLAVE;

Keepalived高可用配置
主节点配置(192.168.1.10)
# /etc/keepalived/keepalived.conf
global_defs {
router_id MYSQL_HA_01
}
vrrp_script chk_mysql {
script "/usr/local/bin/mysql_check.sh"
interval 2
weight 2
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
virtual_ipaddress {
192.168.1.100/24 dev eth0
}
track_script {
chk_mysql
}
}

备节点配置(192.168.1.11)
router_id MYSQL_HA_02
state BACKUP
priority 90

▶ 健康检测脚本
#!/bin/bash
# /usr/local/bin/mysql_check.sh
if ! mysqladmin ping -h127.0.0.1 -uroot -p'YourPassword' >/dev/null 2>&1; then
systemctl stop keepalived
exit 1
fi
exit 0

安全加固:
脚本权限设置为700
使用独立监控账户代替root
日志记录到/var/log/keepalived.log
关键验证操作
1. 同步状态检查
SHOW SLAVE STATUSG
-- 确认以下参数:
-- Slave_IO_Running: Yes
-- Slave_SQL_Running: Yes
-- Retrieved_Gtid_Set: 正常递增

2. VIP漂移测试
# 主节点执行
systemctl stop mysqld
# 观察备节点是否接管VIP
ip addr show eth0 | grep 192.168.1.100

3. 数据冲突测试
-- 节点1插入
INSERT INTO test.t1 VALUES (null, 'node1');
-- 节点2插入
INSERT INTO test.t1 VALUES (null, 'node2');
-- 检查双节点数据一致性

安全加固清单
启用SSL加密传输
配置iptables防火墙规则
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="3306" accept'

开启审计日志
[mysqld]
audit_log=ON
audit_log_format=JSON

定期备份验证
mysqldump --single-transaction --master-data=2 -uroot -p dbname > backup.sql


审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SSL
    SSL
    +关注

    关注

    0

    文章

    132

    浏览量

    26652
  • CentOS
    +关注

    关注

    0

    文章

    84

    浏览量

    14675
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    粒子火灾预警系统 电气火灾监测预警系统厂家沃伦森电气

    的产品,该系统聚焦于火灾早期产生的粒子浓度变化这一关键危险特征,能够在出现可见烟雾之前,捕捉高温条件产生的粒子并发出报警。其响应速
    的头像 发表于 11-13 17:29 1098次阅读
    <b class='flag-5'>热</b><b class='flag-5'>解</b>粒子火灾预警系统 电气火灾监测预警系统厂家沃伦森电气

    服务器数据恢复—Raid5两盘损坏盘未启咋恢复?

    EMC存储上有一组由多块stat硬盘组建的raid5磁盘阵列,该raid5阵列中有两块盘。上层采用的是zfs文件系统。 raid5阵列中2块硬盘出现故障,只有一块盘激活。
    的头像 发表于 10-09 17:31 471次阅读

    Mysql数据恢复—Windows ServerMySQL(InnoDB)表误删数据恢复案例

    本地服务器,操作系统为windows server。服务器上部署mysql单实例,innodb引擎,独立表空间。未进行数据库备份,未开启binlog。 人为误操作使用Delete命令删除数据时未添加where子句,导致表数据被删除。删除后未对该表进行任何操作。需要恢复
    的头像 发表于 09-23 15:56 503次阅读
    <b class='flag-5'>Mysql</b>数据恢复—Windows Server<b class='flag-5'>下</b><b class='flag-5'>MySQL</b>(InnoDB)<b class='flag-5'>全</b>表误删数据恢复案例

    企业级HDFS可用与YARN资源调度方案

    作为一名在大数据运维领域摸爬滚打8年的老兵,我见过太多因为基础架构不够健壮而导致的生产事故。今天,我想和大家分享一套经过实战检验的 HDFS 可用与 YARN 资源调度方案,这套方案
    的头像 发表于 09-08 17:15 558次阅读

    华纳云:海外服务器负载均衡与可用架构设计

    在现代互联网应用中,海外服务器承担着跨境业务、并发请求和实时数据传输的关键角色。单台服务器难以支撑大量并发请求,一旦发生故障,可能导致服务中断和业务损失。因此,合理设计负载均衡与可用架构
    的头像 发表于 08-28 18:32 481次阅读

    服务器数据恢复—盘上线过程中硬盘掉线导致数据丢失,数据恢复揭秘

    一台某品牌存储设备中有一组由8块硬盘(包括盘)组建的raid5磁盘阵列。上层安装的Linux操作系统。 raid5磁盘阵列有一块硬盘掉线,
    的头像 发表于 08-26 13:24 199次阅读

    深入剖析RabbitMQ可用架构设计

    在微服务架构中,消息队列故障导致的系统不可用率高达27%!如何构建一个真正可靠的消息中间件架构?本文将深入剖析RabbitMQ可用设计的核
    的头像 发表于 08-18 11:19 702次阅读

    QNAP 正式推出 NAS 双机架构可用性解决方案,打造不中断的储存环境

    , HA) 解决方案,让企业透过稳定可靠的 NAS 双机架构,确保业务关键资料与服务不中断。QNAP 可用性解决方案在 Beta 版本期间获得市场高度肯定,正式版的推出更进一步提
    的头像 发表于 07-28 09:26 407次阅读

    raid5数据恢复—raid5阵列盘未完全激活导致崩溃的数据恢复案例

    某单位一台EMC某型号存储中有12块STAT接口的硬盘,其中10块硬盘组建了一组RAID5阵列,剩下2块设置为盘使用。 RAID5阵列中的2块硬盘出现故障离线,但是只有一块
    的头像 发表于 07-09 11:35 311次阅读

    介绍三种常见的MySQL可用方案

    在生产环境中,为了确保数据库系统的连续可用性、降低故障恢复时间以及实现业务的无缝切换,可用(High Availability, HA)方案至关重要。本文将详细介绍三种常见的 MySQL
    的头像 发表于 05-28 17:16 1006次阅读

    MYSQL集群可用和数据监控平台实现方案

    该项目共分为2个子项目,由MYSQL集群可用和数据监控平台两部分组成。
    的头像 发表于 05-28 10:10 1086次阅读
    <b class='flag-5'>MYSQL</b>集群<b class='flag-5'>高</b><b class='flag-5'>可用</b>和数据监控平台实现方案

    服务器数据恢复—V7000存储上raid5盘同步失败的数据恢复方案

    V7000存储设备上raid5阵列上一块硬盘出现故障离线,盘自动启用开始同步数据。盘数据同步还没有结束的情况,与离线盘处于同一组M
    的头像 发表于 05-23 14:47 440次阅读

    利用dockerfile搭建mysql主从集群和redis集群

    ==MySQL主从同步(Replication)是一种实现数据冗余和可用性的技术,通过将数据库(Master)的变更操作同步到一个或多个从数据库(Slave),实现数据的实时或准实
    的头像 发表于 05-14 11:38 737次阅读
    利用dockerfile搭建<b class='flag-5'>mysql</b>主从集群和redis集群

    使用DRBD和keepalived实现文件实时同步和双机

    使用DRBD和keepalived实现文件实时同步和双机
    的头像 发表于 03-03 17:20 870次阅读

    升级centos7内核版本

    " : " $2}' /etc/grub2.cfg 0 : CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core)1 : CentOS Linu
    的头像 发表于 01-02 10:41 1007次阅读