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 "

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

更多相关文章

Python编程实战:揭秘加密压缩文件的真相

22天前

实验目的 应用Python程序设计语言的相关知识, 对加密的压缩文件进行破解。 实验所用仪器(或实验环境) Python3.8 实验基本原理及步骤(或方案设计及理论计算)

给你的文件上把锁:理解ZIP压缩文件的加密原理

22天前

ZIP 加密压缩文件的原理主要围绕 数据压缩和 加密保护两个核心环节展开,通过将文件压缩后再加密,既节省存储空间,又能防止未授权访问。以下是具体原理的详细解析: 一、数据压缩:减

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

22天前

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

Linux内核更新后,启动失败,咋整?

22天前

一、内核升级后启动失败 原因:initramfs 镜像未正确生成或 GRUB 配置错误。 处理步骤如下: 1、进入旧内核启动系统。 2、重新生成 initramfs: sudo dracut -f -

Linux新手必学:修复损坏包,让你的系统焕然一新

22天前

在使用 Linux 系统的过程中,有时会因为误操作、系统崩溃或磁盘错误等原因导致某些软件包损坏或丢失。这可能会造成系统功能异常甚至无法启动。别担心!本文将带你一步步学习如何在主流 Linux 发行版中恢复或修复软件包,即使是小白也能轻

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

22天前

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

《DNF》加载失败?只需几步修复ClientBase.dll问题,游戏畅通无阻

22天前

遇到《地下城与勇士》(DNF)提示“由于找不到ClientBase.dll无法继续执行代码”的问题时,意味着游戏在启动或运行时未能找到或加载一个必要的动态链接库(Dynamic Link Library)文件。ClientBase.d

CentOS7 SCP命令实战秘籍:DNF台服文件传输,轻松避开那些坑!

22天前

CentOS 7下SCP命令实战:DNF台服文件传输避坑指南 搭建DNF台服时,文件传输往往是第一个拦路虎。我曾见过不少开发者花一整天折腾服务端文件上传,结果卡在权限问题或路径错误上。SCP作为Linux系统间的传输利器,用对

Untrunc:MP4MOV损坏视频的救星,让你的视频焕然一新!

22天前

如何通过Untrunc高效修复损坏的MP4MOV视频文件 在数字媒体存储与传输过程中,视频文件损坏是常见的数据安全问题。无论是存储卡意外拔出、系统断电还是传输中断,都可能导致MP4、MOV等格式的视频文件无法正常播放。作为一

DNF玩家必备:Win10蓝屏问题全解决指南!

22天前

在玩DNF(地下城与勇士)时,有时候可能会遇到Windows 10蓝屏的问题。这可能是由于多种原因引起的,例如驱动程序冲突、系统错误或者其他软件的干扰。本文将提供一些解决这个问题的方法,帮助您在玩DNF时避免蓝屏。 方法一:更

360中毒,Flash中心卡住?一键解决,让你重启安全防护!

22天前

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

360安全卫士不听话?教你几个小技巧快速卸载

22天前

问题描述:360安全卫士进入程序卸载界面,点击卸载卸载不掉。 解决方法:A、进入安全模式,B、再进行常规卸载即可。 A:第一步:进入安全模式 进入安全模式方式:方法有两种

搞定360安全卫士卸载难题,轻松一步到位!

21天前

问题描述:360安全卫士进入程序卸载界面,点击卸载卸载不掉。 解决方法:A、进入安全模式,B、再进行常规卸载即可。 A:第一步:进入安全模式 进入安全模式方式:方法有两种

面对MySQL无法打开,新手也能轻松搞定!

21天前

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

正版Office2016大集结,Microsoft Office Professional Plus 2016完整版,CD原装复制!

21天前

哪里下载Office2016官方最新版?Microsoft Office是微软开发的办公软件套装,常用组件有 Word、Excel、Powerpoint等。最新版是Office2016,其中Microsoft Office Prof

搞定Win下的默认浏览器:为何总是IE_Web当道?

21天前

今天开始打开项目时,突然间发现我的浏览器被改成了IE打开。奇怪了,并没有设置过默认浏览器为IE! 随后,当然是修改默认浏览器了,如下常规操作: 控制面板》程序》默认程序》设置默认程序》web浏览器》点击并选着你要设置的

Win10找不到QoS数据包调度?揭秘网速限制解决方案!

21天前

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

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

21天前

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

Excel高手必备:TL431可调电压基准源的求解秘技

21天前

TL431可调电压基准源的Excel求解与应用 1. TL431可调电压基准源简介 TL431可调电压基准源在行业中应用广泛,它具有简单的配置、低成本和广泛的调节能力,深受电子工程师喜爱。其基本原理图如下: grap

突破视觉强化学习训练的‘视觉’障碍,MJX带来高效方案

21天前

突破渲染瓶颈:MJX助力视觉强化学习的高效训练方案 在机器人控制与自动驾驶等领域,视觉强化学习(Visual Reinforcement Learning, VRL)需要通过大量图像数据训练智能体,但传统物理模拟器的渲染速度往

发表评论

全部评论 0
暂无评论