MYSQL 高可用

news2025/5/17 18:01:56

目录

一 什么是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依然可以访问

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2377866.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【GaussDB迁移攻略】DRS支持CDC,解决大规模数据迁移挑战

目录 1 背景介绍 2 CDC的实现原理 3 DRS的CDC实现方式 4 DRS的CDC使用介绍 5 总结 1 背景介绍 随着国内各大行业数字化转型的加速,客户的数据同步需求越来越复杂。特别是当需要将一个源数据库的数据同时迁移到不同的目标库场景时,华为云通常会创建…

HoloTime:从一张图片生成可交互的4D虚拟世界——突破静态生成模型,重构VR/AR内容生产范式

引言:静态生成模型的局限与HoloTime的突破 在空间智能与虚拟内容生成领域,传统生成模型(如扩散模型)面临两大瓶颈: 静态输出:仅能生成固定视角的3D场景或局部物体动画。沉浸感缺失:无法构建用户可“走进去”的动态4D空间(时间+空间)。HoloTime 通过“图像→全景视频→…

【深度学习】#11 优化算法

主要参考学习资料: 《动手学深度学习》阿斯顿张 等 著 【动手学深度学习 PyTorch版】哔哩哔哩跟李牧学AI 目录 深度学习中的优化挑战局部极小值鞍点梯度消失 凸性凸集凸函数 梯度下降一维梯度下降学习率局部极小值 多元梯度下降 随机梯度下降随机梯度更新动态学习率…

根据台账批量制作个人表

1. 前期材料准备 1)要有 人员总的信息台账 2)要有 个人明白卡模板 2. 开始操作 1)打开 人员总的信息台账,选择所需要的数据模块; 2)点击插入,选择数据透视表,按流程操作&…

LocaleContextResolver实现多语言切换-笔记

1. LocaleContextResolver功能简介 org.springframework.web.servlet.LocaleContextResolver是 Spring MVC 中用于解析和管理用户 Locale(语言环境) 的核心接口。 //LocaleContextResolver 接口定义 public interface LocaleContextResolver extends L…

Zephyr OS Nordic芯片的Flash 操作

目录 概述 1. 软硬件环境 1.1 软件开发环境 1.2 硬件环境 2 Flash操作库函数 2.1 nRF52832的Flash 2.2 Nordic 特有的 Flash 操作 2.2.1 nrfx_nvmc_bytes_write 函数 2.2.2 nrfx_nvmc_page_erase函数 2.2.3 nrfx_nvmc_write_done_check 函数 3 操作Flash的接口函数…

uv python 卸载

又是查了半天 官网wiki没有 网上一堆傻子胡说 uv提示也不对 AI还在这尼玛胡编乱造 开始 我原来装了这几个环境 uv python list 现在python3.7.7不需要了,卸载,直接 uv python uninstall 3.7.7 去找你自己要卸载的版本号,不需要整个包名复制…

浮点数截断法:四舍五入的精确模拟

理论解释: 1. 目标 假设 a 3.14159,我们想四舍五入到 小数点后两位(即 3.14 或 3.15)。 2. 步骤拆解 (1) a * 100 把 a 放大 100 倍,让小数点后两位变成整数部分: 3.14159 * 100 314.159 (2) 0.5 关…

技术文章:解决汇川MD500系列变频器干扰问题——GRJ9000S EMC滤波器的应用

1. 引言 汇川MD500系列变频器(Variable Frequency Drive, VFD)以其高性能、宽功率范围(0.4kW-500kW)和灵活的控制方式,广泛应用于工业自动化领域,如风机、水泵、传送带和压缩机等。然而,MD500系…

大模型数据分析破局之路20250512

大模型数据分析破局之路 本文面向 AI 初学者、数据分析从业者与企业技术负责人,围绕大模型如何为数据分析带来范式转变展开,从传统数据分析困境谈起,延伸到 LLM MCP 的协同突破,最终落脚在企业实践建议。 🌍 开篇导语…

基于javaweb的SSM驾校管理系统设计与实现(源码+文档+部署讲解)

技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…

Java内存泄露生产环境排查过程,通透了

昨天线上环境崩了 java堆内存溢出。。。 报错:java.lang.OutOfMemoryError: Java heap space 下面我将我排查问题的思路和过程记录了下来 1. 场景 客户端跟Java服务端通过websocket连接建立长链接并发送语音数据(text格式)Java服务端跟听…

NHANES指标推荐:MDS

文章题目:The association between magnesium depletion score (MDS) and overactive bladder (OAB) among the U.S. population DOI:10.1186/s41043-025-00846-x 中文标题:美国人群镁耗竭评分 (MDS) 与膀胱过度活动症…

【HTML5学习笔记1】html标签(上)

web标准(重点) w3c 构成:结构、表现、行为,结构样式行为相分离 结构:网页元素整理分类 html 表现:外观css 行为:交互 javascript html标签 1.html语法规范 1) 所有标签都在…

计算机视觉---目标检测(Object Detecting)概览

一、目标检测定义与核心任务 1. 定义 任务:在图像/视频中定位并分类所有感兴趣目标,输出边界框(Bounding Box)和类别标签。核心输出: 坐标:((x_1, y_1, x_2, y_2))(左上角右下角)或…

在vue3中使用Cesium的保姆教程

1. 软件下载与安装 1. node安装 Vue.js 的开发依赖于 Node.js 环境,因此我们首先需要安装 Node.js。Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它允许你在服务器端运行 JavaScript 代码,同时也为前端开发提供了强大的工具支…

IP地址、端口、TCP介绍、socket介绍、程序中socket管理

1、IP地址:IP 地址就是 标识网络中设备的一个地址,好比现实生活中的家庭地址。IP 地址的作用是 标识网络中唯一的一台设备的,也就是说通过IP地址能够找到网络中某台设备。 2、端口:代表不同的进程,如下图: 3、socket:…

搭建运行若依微服务版本ruoyi-cloud最新教程

搭建运行若依微服务版本ruoyi-cloud 一、环境准备 JDK > 1.8MySQL > 5.7Maven > 3.0Node > 12Redis > 3 二、后端 2.1数据库准备 在navicat上创建数据库ry-seata、ry-config、ry-cloud运行SQL文件ry_20250425.sql、ry_config_20250224.sql、ry_seata_2021012…

RK3568-鸿蒙5.1与原生固件-扇区对比分析

编译生成的固件目录地址 ../openharmony/out/rk3568/packages/phone/images鸿蒙OS RK3568固件分析 通过查看提供的信息,分析RK3568开发板固件的各个组件及其用途: 主要固件组件 根据终端输出的文件列表,RK3568固件包含以下关键组件&#x…

常见激活函数——作用、意义、特点及实现

文章目录 激活函数的意义常见激活函数及其特点1. Sigmoid(Logistic 函数、S型函数)2. Tanh(双曲正切函数)3. ReLU(Rectified Linear Unit修正线性单元)4. Softmax5. Swish(Google 提出&#xff…