admin 管理员组文章数量: 1184232
一、项目概述
成功部署并验证了MySQL 8.3.0一主两从复制集群,实现了数据自动同步、高可用性和读写分离基础架构。该项目涵盖了从环境准备、软件安装、配置优化到故障排查的全流程。
MySQL 集群(MySQL Cluster)本质是为了解决单节点 MySQL 的 性能瓶颈 (高并发)、 可用性风险 (单点故障)和 数据可靠性 (数据丢失)问题,通过多台服务器协同工作,将数据分散 / 复制存储、请求分散处理,最终实现:
高可用(HA) :单个节点故障不影响整体服务;
高扩展(Scalability) :可通过增加节点提升处理能力;
数据一致性 :集群内数据保持同步(不同架构一致性级别不同
二、实验环境
操作系统 :RHEL 9
MySQL版本 :8.3.0(源码编译安装)
服务器规划:
| 服务器 | IP地址 | 角色 | server-id | 复制用户 |
| 主服务器 | 172.25.254.100 | Master | 1 | repl_user |
| 从服务器1 | 172.25.254.200 | Slave1 | 2 | repl_user |
| 从服务器2 | 172.25.254.210 | Slave2 | 3 | mysqlave |
网络环境 :内网互通,关闭防火墙或开放3306端口
三、完整实验步骤
3.1 环境准备
3.1.1 系统更新与依赖安装
dnf update -y
dnf install -y gcc gcc-c++ cmake make ncurses-devel openssl-devel3.1.2 创建MySQL用户和组
groupadd mysql
useradd -r -g mysql -s /bin/false mysql3.1.3 关闭防火墙和SELinux
systemctl stop firewalld
systemctl disable firewalld
setenforce 03.2 MySQL 8.3.0编译安装
3.2.1 下载并解压源码包
wget
tar -zxvf mysql-8.0.33.tar.gz
cd mysql-8.0.333.2.2 编译配置
cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci3.2.3 编译并安装
make -j$(nproc)
make install3.2.4 初始化MySQL
cd /usr/local/mysql
bin/mysqld --initialize-insecure --user=mysql验收标准:
3.3 主服务器配置(Master)
3.3.1 修改配置文件 /etc/my.cnf
[mysqld]
server-id=1
log-bin=mysql-bin
binlog_format=ROW
expire_logs_days=7
max_binlog_size=100M3.3.2 创建复制用户
CREATE USER 'repl'@'%' IDENTIFIED WITH mysql_native_password BY 'Repl@123456';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;3.3.3 查看主服务器状态
CREATE USER 'repl'@'%' IDENTIFIED WITH mysql_native_password BY 'Repl@123456';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;3.4 从服务器配置(slave1和slave2)
3.4.1 修改配置文件/etc/my.cnf
[mysqld]
server-id=2 # 每个从服务器唯一
relay-log=mysql-relay-bin
read_only=1
super_read_only=13.4.2 配置主从复制
STOP SLAVE;
CHANGE MASTER TO
MASTER_HOST='172.25.254.100',
MASTER_USER='repl',
MASTER_PASSWORD='Repl@123456',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=156;
START SLAVE;3.4.3 验证复制状态
SHOW SLAVE STATUS\G;
-- 检查Slave_IO_Running和Slave_SQL_Running是否为Yesslave1:
slave2:
3.5 验证整个集群数据同步
3.5.1 基础同步验证
1.创建测试环境
-- 在主服务器上创建测试数据库和表
CREATE DATABASE IF NOT EXISTS cluster_test;
USE cluster_test;
-- 创建测试表
CREATE TABLE sync_test (
id INT AUTO_INCREMENT PRIMARY KEY,
data_content VARCHAR(255),
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
source_server VARCHAR(50) DEFAULT 'master'
);
-- 插入初始测试数据
INSERT INTO sync_test (data_content) VALUES
('初始测试数据1'),
('初始测试数据2'),
('初始测试数据3');2.验证从服务器数据同步
-- 分别在两个从服务器上执行
USE cluster_test;
SELECT '从服务器1' AS server_name, COUNT(*) as row_count FROM sync_test;
SELECT * FROM sync_test ORDER BY id;3.5.2 实时同步测试
1.增量数据同步验证
-- 在主服务器上连续插入数据
DELIMITER $$
CREATE PROCEDURE insert_test_data()
BEGIN
DECLARE i INT DEFAULT 1;
WHILE i <= 10 DO
INSERT INTO sync_test (data_content)
VALUES (CONCAT('批量测试数据-', i, '-', NOW()));
SET i = i + 1;
DO SLEEP(1); -- 每秒插入一条
END WHILE;
END
$$
DELIMITER ;
-- 执行存储过程
CALL insert_test_data();2.实时监控同步状态
# 监控脚本:sync_monitor.sh
#!/bin/bash
echo "=== 实时数据同步监控 ==="
echo "监控开始时间: $(date)"
echo ""
while true; do
clear
echo "=== 集群数据同步状态 ==="
echo "时间: $(date)"
echo ""
# 主服务器数据
echo "
版权声明:本文标题:Mysql高可用集群配置秘籍:一主两从模式实战演练 内容由网友自发贡献,该文观点仅代表作者本人,
转载请联系作者并注明出处:http://www.roclinux.cn/p/1772303725a3554412.html,
本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
更多相关文章
双系统引导丢失,Windows岌岌可危!修复秘籍传授!
引言 “手贱”是科技进步的第一动力——至少在我的电脑上是这样。 前几天,我决定给硬盘来一次“断舍离”。看着那块装着老Windows 10系统的F盘,心想既然主力系统已经是Windows 11了,留着它也是浪费空间。于是
QQ浏览器2020旧版本自动更新失败?教你一键恢复
QQ浏览器自动更新功能关闭后如何重新开启?详细操作指南 在日常使用电脑过程中,软件自动更新功能对于保障系统安全性和功能完整性至关重要。近期收到不少用户反馈,称QQ浏览器的自动更新功能被意外关闭后,无法通过常规途径获取新版本更新
从入门到精通:TP-Link与Netcore桥接实操指南
朋友的无线到我家就很微弱,天气状况好的时候,还是可以接受的,糟的时候网络质量就非常的差。 于是果断入手了TPLink,通过桥接的方式 扩展他的信号,让wifi覆盖无死角。 基本配置如下(参考网络上的资料,但是不同的路由
TP-Link 478+ 升级秘密武器:高效固件包等你来下载!
ZIP文件 资源目录 相关推荐 核心逻辑: * 1. 若DLQ未启用,直接调用原始处理器; * 2. 若启用,按配置重试处理事件; * 3. 重试耗尽后发送事件到DLQ。 *
如何利用192.168.1.1优化你的家庭网络体验
虽然前面小编也发布过关于的相关信息,但是都是解释相关的问题的,没有好好介绍关于的信息,今天小编星期八就给大家介绍一下的详细信息! 是什么? 192.168.0.1属于IP地址的
192.168.1.1的FTP服务器遇到障碍?这里有一站式解决方案!
、属于IP地址的C类地址,属于保留IP,专门用于设置。一般来讲这个地址的密码根据厂商的设置会有所不同,但一般会是:用户名(区分大小写):ADMIN 密码:ADMIN如果您已经修改了这个
192.168.0.1隐藏的路由器入口,教你快速进入并优化网络!
有不少的用户在反馈,说在的时候,登录入口打不开找不到,从而无法对进行设置,问我应该怎么办? 根据鸿哥的经验来看,出现无法打开的登录入口问题,绝大数情况下是用户自己操作有误引起的,极少数情况
192.168.1.1的秘密通道:探索家庭网络的入口
虽然前面小编也发布过关于的相关信息,但是都是解释相关的问题的,没有好好介绍关于的信息,今天小编星期八就给大家介绍一下的详细信息! 是什么? 192.168.0.1属于IP地址的
从192.168.1.1开始:Adobe Flash Player官方入口的全面解读
【登陆官网】网友提问:怎么用的呢?的时候,官网登陆不了怎么办?热心网友答:要进入192.1.1.1,需要手机连接路由器发射出来的Wi
轻松搞定192.168.0.1,从初学者到高手的路由器设置技巧
摘 要 (导读:192.168.0.1路由器设置)1、路由器正确安装:2、IP地址设置3、登录路由器4、设置路由器目录本文将介绍192.168.0.1路由器设置的方法及教程;适用于小白新手换新路由器或者路" (导读
告别重装系统,用DISM轻松解决电脑问题
介绍了解: DISM(部署映像服务和管理)是三种 Windows 诊断工具中最强大的。当遇到频繁的崩溃、冻结和错误,或者 SFC 要么无法修复您的系统文件,或者根本无法运行时,可以使用该工具。 相连文章: 修复
从0到1:Dism++教你快速完成系统安装,新手必备技能!
系统安装是一个简单而又复杂的活。有的仅仅为了安装系统,先把ESD转为ISO。 有的因为安装器不支持ESD,而转换为WIM。还有的在解压ISO……反正各种心烦 本文将通过一些实例,帮助大家驾驭Dism 。 目录
Windows系统维护新纪元:Dism命令的高效应用实践
Dism是什么? dism 命令(Deployment Image Servicing and Management)是Windows操作系统中的一个命令行工具,用于管理和维护映像文件(如Windows安装映像或修复映像)。d
让Dism++帮您驾驭Windows系统,轻松优化
简介:Dism++是一款先进的系统维护工具,专注于清理电脑垃圾、释放内存,提供全面的系统优化解决方案。最新版本Dism++10.1.1000.100_2d2bf466baca088c4b35248f5a7316f4e00cac0b特别
一招搞定电脑卡顿?Dism++优化技巧大公开
1.系统文件清理 虽然dism的文件清理比较弱,但相对于其他清理工具来说,清理系统垃圾文件功能比较丰富,选择软件的空间回收栏目,勾选所有的清理功能,点击扫描,稍等片刻,即可扫描出不需要的文件,点击清理即可。 其中需要注
一文读懂Dism命令行,Adobe Flash Player安装不再难!
相关文章推荐:Windows ADK 下载地址: 命令示例:Gimagex图形化演示:以下命令由DISMGUI生成,原汁原味1.首次备份镜像【Captu
Dism++:你的日常维护与系统优化好帮手
简介:Dism++是一款先进的系统维护工具,专注于清理电脑垃圾、释放内存,提供全面的系统优化解决方案。最新版本Dism++10.1.1000.100_2d2bf466baca088c4b35248f5a7316f4e00cac0b特别
系统维护必备工具:DISM++助你轻松应对Flash中心和Player
简介:DISM++是一款全方位的电脑维护软件,提供深度扫描和清理功能,专为优化个人计算机而设计。它能够高效清除各种系统垃圾和无用文件,释放硬盘空间,并通过系统清理、优化、备份和恢复功能提高电脑的运行速度和性能。该软件还支持多语言界面,
C盘大搬家?别怕,Ghost备份带你安全过!
推荐用U盘制作启动工具 大白菜or老毛桃 备份:以老毛桃为例,进入PE,点击左下角开始,可见ghost功能选项 运行Ghost后,单击“OK”。 选择“Local”→“Partition”→“
Windows系统备份宝典:轻松搞定数据保护
Windows系统备份 备份种类 全量备份 全量备份就是指对某一个时间点上的所有数据或应用进行一个完全拷贝。实际应用中就是用存储介质(如磁盘或其他方式)对整个系统进行全量备份,包括其中的系统和所有数据。
发表评论