欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > MYSQL 高可用

MYSQL 高可用

2025/5/17 7:03:57 来源:https://blog.csdn.net/2401_84242106/article/details/148002259  浏览:    关键词:MYSQL 高可用

目录

一 什么是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 第二台

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依然可以访问

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词