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 "

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

更多相关文章

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

22天前

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

Linux下的网络挑战:优化源配置,让你的浏览器飞起来!

22天前

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

Ansible 2.9.18实战:快速解决DNF更新问题,让playbook自动执行

22天前

引言 在使用 Ansible 进行服务器管理时,我们经常遇到一些特定的挑战,特别是在使用 AWX 服务器管理一组服务器时。最近,我在 Ansible 2.9.18版本中遇到一个问题:当尝试在托管内部仓库

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

22天前

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

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

22天前

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

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

22天前

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

中毒问题与360杀毒Server2016,解决疑难杂症

22天前

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

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

22天前

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

360安全卫士惹的祸?教你一招,恢复网页访问无忧!

22天前

网站无法访问现象: 1.访问网站一直加载中,或出现Service Unavailable提示 2.远程登录服务器,打开iis,点网站右键属性》isapi筛选》出现一个QHWafIISModule红色的向下图标(dll加

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

22天前

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

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

21天前

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

360 安全卫士搞砸了?教你恢复网页访问的秘籍!

21天前

网站无法访问现象: 1.访问网站一直加载中,或出现Service Unavailable提示 2.远程登录服务器,打开iis,点网站右键属性》isapi筛选》出现一个QHWafIISModule红色的向下图标(dll加

告别盗版,正版Office2016:Microsoft Office Professional Plus 2016 Word2016 CD正版下载

21天前

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

Office2016 Pro Plus 64位免费版,迅雷链接即刻下载

21天前

转: 下载地址:ed2k:|file|SW_DVD5_Office_Professional_Plus_2016_64Bit_ChnSimp_MLF_X20-42426.ISO|1123452928|31087A00FF6

Office 2016简体中文官方正版镜像,一步到位的授权安装

21天前

Office 2016 简体中文批量授权版镜像下载(含Visio、Project)此处整理了office2016 VOL大客户批量授权版下载资源,包含了office2016 32位+64位版本、project2016 32

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

21天前

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

别让浏览器选你,用批处理快速设置IE为默认

21天前

【现象】 由于调试需要,在系统中安装了FF,IE。如果想让IE作为默认浏览器 ,执行以下操作步骤: 【处理】通过对IE进行设置来把它设置为系统的默认浏览器, 步骤如下: 1. 启动IE浏览器。 2. 选

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

21天前

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

Windows10用户必备:轻松解锁网速限制,体验流畅网络

21天前

win10怎么解除网速限制 1. 按下"win+r"打开"运行"菜单,输入"gpedit.msc";2. 在打开的"本地组策略编辑器"窗口中

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

21天前

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

发表评论

全部评论 0
暂无评论