目录
(1)在Master1/etc/my.cnf 中修改或者增加下面内容。
(2 在Master2/etc/my.cnf 中修改或者增加下面内容
(3)重启 MySQL 服务。(Master1、Master2都执行)
(4)登录 MySQL 程序,给从服务器授权。(Master1、Master2都执行)
(5)登录 MySQL,配置同步。(Master1、Master2都执行)
一 什么是mysql 高可用
MySQL 高可用(High Availability)是指通过冗余设计,确保数据库服务在单节点故障、网络中断或硬件损坏等异常情况下,仍能持续对外提供服务,同时保“零停机、零数据丢失”证数据一致性。其核心目标是实现的业务连续性。
1.2方案组成
MySQL 主主复制+Keepalived+ HAProxy 的高可用方案由三部分组成:
MySQL 主主复制: 两台 MySQL 实例互为主从,双向同步数据,均支持读写操作,提供冗余和扩展能力。 Keepalived: 通过 VRRP 协议管理虚拟 IP(VIP),监控 MySQL 状态,故障时自动将 VIP 漂移至存活节点,确保服务地址不变。 HAProxy: 作为反向代理和负载均衡器,将流量分发至MySQL节点,支健康检查、读写分离(可选)和故障节点自动剔除。
1.3 优势
高可用性: :Keepalived 实现秒级故障切换,HAProxy 健康检查确保流量仅路由到正常节点,避免单点故障 读写扩展: 主主架构支持双节点并发写入,提升写入性能;HAProxy 可配置读写分离,利用备节点分担读压力。 读写扩展: 可横向扩展 HAProxy 或 MySQL节点,支持动态调整负载均衡策略(如轮询、权重)。运维友好基于开源工具,无厂商锁定,社区支持丰富,适合自建数库集群。
2.1 案例环境
实验拓扑图
二 案例实施
1.安装mysql数据库
(1 基础环境
如果采用OpenEuler minimal 安装的系统,在使用前需要安装一些基础软件包工具。
关闭 SELinux 和防火墙
(2二进制安装进行bash
安装软件包
二进制安装的版本采用跟上面编译安装的版本一样 MySQL 8.0.36。首先需要下载该软 件包或者提前上传,然后再解压进行配置。
(3 设置配置文件
MYSQL 的配置文件跟上面编译安装的配置文件类似
(4. 配置systemctl 方式启动
2.配置mysql 双主复制
对于 MySQL 的主主架构,其实原理就是两台服务器Master1、Master2 互为主从,双向复制
(1)在Master1/etc/my.cnf 中修改或者增加下面内容。
log-bin=/usr/local/mysql/data/mysql-bin #启用二进制日志(Binary Log)并指定其存储路径
binlog_format=MIXED #定义二进制日志的记录格式为混合模式server-id=1#为mysq1实例分配一个唯一的服务器标识符
(2 在Master2/etc/my.cnf 中修改或者增加下面内容
log-bin=/usr/local/mysql/data/mysql-bin #启用二进制日志(Binary Log)并指定其存储路径
binlog_format = MIXED #定义了二进制日志的记录格式为混合模式是
server-id=2 #为mysq1实例分配一个唯一的服务器标识符
(3)重启 MySQL 服务。(Master1、Master2都执行)
(4)登录 MySQL 程序,给从服务器授权。(Master1、Master2都执行)
(5)登录 MySQL,配置同步。(Master1、Master2都执行)
Master1
按主服务器结果更改下面命令中 master_log_file 和master_log_pos 参数。
启动同步。
查看 Slave 状态,确保以下两个值为 YES
Master2
按主服务器结果更改下面命令中 master_log_file 和 master_log_pos 参数。
启动同步。
查看 Slave 状态,确保以下两个值为 YES
(5.测试
3.安装 haproxy
HAProxy 是一个开源的高性能负载均衡器和代理工具,支持 TCP/HTTP 应用的流量分发,具备健康检查、SSL终止、会话保持等功能,广泛应用于Web服务器集群、数据库读写分离及API 网关场景,以高效稳定的特性提升系统可用性和扩展能力。
(1 关闭selinux和防火墙
(2 安装haproxy
(3 编辑haproxy 配置文件
(4 检测配置文件,并启动服务
4.安装 keepalive
Keepalived 是一个用于实现系统高可用性和负载均衡的工具,通过 VRRP(Virtual Router Redundancy Protocol)等协议管理虚拟 IP 地址,持续监测服务器健康状态,当主节点故障时自动将流量切换至备用节点,确保服务不中断,常用于数据库、Web 服务等集群环境,提升系统可靠性并简化故障恢复流程。
(1 关闭防火墙
(2 安装keepalived
(3 编辑haproxy配置文件
添加监控脚本启动keepalived
在keepalived测试查看vip
(4 编测试使用VIP连接mysql
停止Keepalived
查看ip a第一台
查看ip a 第二台