目录
一 什么是MYSQL高可用
1.1 什么是MySQL高可用
1.2方案组成
1.3 优势
2.1 案例环境
二 案例实施
1.安装mysql数据库
(1 基础环境
(2二进制安装进行bash
(3 设置配置文件
MYSQL 的配置文件跟上面编译安装的配置文件类似
(4. 配置systemctl 方式启动
2.配置mysql 双主复制
(1)在Master1/etc/my.cnf 中修改或者增加下面内容。
(2 在Master2/etc/my.cnf 中修改或者增加下面内容
(3)重启 MySQL 服务。(Master1、Master2都执行)
(4)登录 MySQL 程序,给从服务器授权。(Master1、Master2都执行)
(5)登录 MySQL,配置同步。(Master1、Master2都执行)
(5.测试
3.安装 haproxy
(1 关闭selinux和防火墙
(2 安装haproxy
(4 检测配置文件,并启动服务
4.安装 keepalive
(1 关闭防火墙编辑
(2 安装keepalived编辑
(3 编辑haproxy配置文件
(4 编测试使用VIP连接mysql
5.测试故障转移
1.关闭master1 主机,测试使用vip能否正常访问mysql数据库关闭master1后,因为master1、master2 通过haproxy负载均衡,master1关闭后,haproxy检测其状态异常,会从负载中移除,不进行流量转发,依然可以通过vip访问mysql,实现mysql的高编辑可用
2. 接着关闭keepalived1,测试使用vip能否正常访问mysq1数据库关闭keepalived1后,keepalived 检测到主节点离线,VIP 192.168.10.100会漂移至keepalived2节点,mysql依然可以访问
一 什么是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 第二台