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

    文章

    131

    浏览量

    26287
  • CentOS
    +关注

    关注

    0

    文章

    84

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

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

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

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

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

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

    该项目共分为2个子项目,由MYSQL集群可用和数据监控平台两部分组成。
    的头像 发表于 05-28 10:10 ?621次阅读
    <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 ?240次阅读

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

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

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

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

    升级centos7内核版本

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

    确保网站无缝运行:Keepalived可用与Nginx集成实战

    目录 keepalived可用(nginx) keepalived简介 keepalived的重要功能 keepalived可用架构
    的头像 发表于 11-27 09:08 ?1287次阅读
    确保网站无缝运行:Keepalived<b class='flag-5'>高</b><b class='flag-5'>可用</b>与Nginx集成实战

    适用于MySQL的dbForge架构比较

    dbForge Schema Compare for MySQL 是一种工具,用于轻松有效地比较和部署 MySQL 数据库结构和脚本文件夹差异。该工具提供了 MySQL 数据库架构中所
    的头像 发表于 10-28 09:41 ?617次阅读
    适用于<b class='flag-5'>MySQL</b>的dbForge<b class='flag-5'>架构</b>比较

    粒子探测器与什么相似

    粒子探测器与某些类型的火灾探测器在功能和原理上有相似之处,但并非完全等同。以下是一些与粒子探测器相似的探测器类型及其相似点: 烟雾探测器 : 相似点 :两者都关注火灾早期产生的
    的头像 发表于 09-25 14:57 ?920次阅读

    粒子传感器有哪些

    粒子传感器是电气火灾监控探测器中的关键组成部分,它们通过探测由电缆、塑料等物质在受热分解时产生的粒子来实现火灾的极早期预警。以下是关于粒子传感器的一些信息: 类型与特点 独立式
    的头像 发表于 09-25 14:54 ?1240次阅读

    粒子式电气火灾监控探测器原理

    电气设备短路 电气设备故障 电气设备安装不当 2. 粒子的概念 粒子是物质在高温分解产生的微小颗粒。在电气火灾中,电线、电缆、绝
    的头像 发表于 09-25 14:23 ?2350次阅读

    粒子探测器干嘛用的

    粒子探测器是一种用于检测和分析粒子的设备,它通过热技术来实现对粒子的检测。这种探测器在物理学、化学、材料科学、环境科学等领域有着广泛的应用。
    的头像 发表于 09-25 14:20 ?1328次阅读

    粒子探测器测试条件有哪些

    1. 引言 粒子探测器是一种高灵敏度的分析仪器,它通过热技术将样品中的污染物转化为可检测的气态分子。这种技术对于检测低浓度的污染物特别有效。 2.
    的头像 发表于 09-25 14:16 ?874次阅读