admin管理员组

文章数量:1516870

一、项目概述

成功部署并验证了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-devel

3.1.2 创建MySQL用户和组

groupadd mysql
useradd -r -g mysql -s /bin/false mysql

3.1.3 关闭防火墙和SELinux

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

3.2 MySQL 8.3.0编译安装

3.2.1 下载并解压源码包

wget 
tar -zxvf mysql-8.0.33.tar.gz
cd mysql-8.0.33

3.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_ci

3.2.3 编译并安装

make -j$(nproc)
make install

3.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=100M

3.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=1

3.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是否为Yes

slave1:

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 "

本文标签: 数据从服务器编程

更多相关文章

Java高手教程:自动压缩与加密文件,提升项目安全性

25天前

实现功能:自动压缩并加密** ** @Title: zipFilesAndEncrypt * @Description: 将指定路径下的文件压缩至指定zip文件,并以指定密码加密,若密码为空

DNF玩家看过来!揭秘 DNF 中底层 curl 如何与 Adobe Flash Player 协同工作

25天前

dnf  update[MIRROR] llvm-libs-20.1.8-1.el10.x86_64.rpm: Curl error (28):Timeout was reached for[

Linux系统更新慢到哭?轻松切换源,提升速度不是梦!

25天前

Linux fedora如何更新系统 解决timeout问题以及为什么update failed一。打开teminalcd etcyum.repos.d进入更新源库

TBB.dll丢了?快速解决DNF5个常见错误,还有免费工具等你用!

25天前

如果你在玩 DNF地下城与勇士或运行其他多线程应用时突然遇到 “tbb.dll丢失”报错,不用慌!本文将帮你快速找出原因,并提供 5种高效修复方案,其中包括

遇到运行崩溃?从img到DNFRPM的完美过渡方法

25天前

dnf updateRepository OS is listed more than once in the configurationRepository everything is listed more than once in

MP4文件恢复不再难:Untrunc助力,让你的视频重获新生!

25天前

终极指南:如何用Untrunc高效恢复损坏的MP4视频文件 当您珍贵的视频文件因存储故障、意外断电或传输错误而无法播放时,那种焦虑和失落感难以言表。无论是家庭聚会的温馨记录、旅行中的精彩瞬间,还是重要的工作素材,这些数字资产的

一步到位:修复DNFRPM拷贝后崩溃的实战技巧

25天前

dnf updateRepository OS is listed more than once in the configurationRepository everything is listed more than once in

玩DNF却遇0x000007b?系统不兼容?看这篇教程,一步到位

25天前

收起 当DNF游戏提示错误代码0x000007b时,通常由以下几个常见原因导致: 在进行修复之前,建议先确认系统环境是否符合游戏运行要求。 以下是针对错误代码0x000007b的详细排查步骤: 如果上述方法均无效,可能需

中毒不假,360安全卫士失效?看这里,解救你的Flash中心

25天前

作者: 由于现在360安全卫士对病毒木马有着99%的查出率和杀灭率,对于各种病毒木马的生存构成了极大的威胁,所以各式各样的病毒木马纷纷将360安全卫士作为首要的功击目标,正所谓树大招风。只要360安全卫士能够打开,病毒就

CSDN遇上360浏览器:打开困难症的根源在哪?

25天前

从百度或者csdn的搜索中打开,会发现打不开网页,以前也出现过,只是以为这篇文章被删了,昨天接连多个文章打不开,怀疑的浏览器的问题,复制网址到edge浏览器就打开了 刚刚又出现了,怀疑360会拦截某些内容 edge浏览

MySQL打不开?三大步骤快速解决

25天前

今天碰到一件特别郁闷的事,就是一直打不开MySQL,输入的密码都是正确的,可就是打不开。然后重启一下,直接打开navicat,能打开,再打MySQL,也成功了(MySQL被设置为开机启动项)。然后过了一会儿,再打MySQL的时候,就又

步骤解析:把Internet Explorer变成你的默认浏览工具

24天前

IE本身就是系统默认浏览器,但有时可能会一不小心将其他浏览器设置成了默认浏览器,要恢复IE为默认浏览器可以采取如下的方法。(1)对于Mozilla这类不采用IE内核的浏览器:可以打开IE,选择“工具→Internet选项→程序”,在“检查

摆脱电脑束缚,用手机轻松管理TP-LINK路由器

24天前

用手机设置TP-LINK路由器的时候,怎么才能进入TP-LINK路由器的登录入口? 为什么我操作老是失败,总是进不去设置页面,是我的路由器坏掉了吗? 答:手机设置tplink路由器的时候,如果手机无法进入到tp

一键解除网络限速,让电脑畅享高速网络

24天前

电脑解除网络限速,让网速飞起来 在日常使用电脑的过程中,你是否经常发现自己的电脑网速明显比别人慢?尤其是在下载文件、观看视频或者进行网络游戏时,这种网速差异尤为明显。如果你也遇到了类似的问题,那么很有可能是系统默认限制了20%

电脑网速大提速,告别卡顿,瞬间流畅!

24天前

电脑解除网络限速,让网速飞起来 在日常使用电脑的过程中,你是否经常发现自己的电脑网速明显比别人慢?尤其是在下载文件、观看视频或者进行网络游戏时,这种网速差异尤为明显。如果你也遇到了类似的问题,那么很有可能是系统默认限制了20%

在Win10下迷路的QoS数据包调度工具?轻松破解网速限制的方法!

24天前

win10解除网速限制 1.win+R 输入 gpedit.msc 默认是未配置 选择已启用 带宽限制0% win10家庭版找不到gpedit.msc的解决办法 新建test.bat文件 管理员身份运行

网速慢到离谱?5分钟内手动优化,让你瞬间畅享高速

24天前

XPWIN7系统都会默认限制20%的网速,我们可以很轻松地解除这个限制,使你的上网速度达到100%,真正地体验冲浪的感觉.方法如下:开始菜单-运行-输入"gpedit.msc”-确定-计算机配置-管理模板-网络-qos数据包计

从零开始:掌握在Windows系统中部署LOCAL SOLVER并实现首个优化案例

24天前

文档系列【1】 Windows 操作系统安装Local Solver下面介绍了在计算机上安装和授权 LocalSolver 的主要步骤。 LocalSol

EuroLLVM’19:LLVM开发者社区的盛宴

24天前

The LLVM Foundation is excited to announce the program for the EuroLLVM’19 developers’ meeting (April 8 - 9 in Brusse

C++高手进阶:探索创建Excel插件的神秘领域

24天前

我们目前最常见的几个 excel 的版本是 Excel 972000200220032007 , 本书提到的所有例子都是

发表评论

全部评论 0
暂无评论