目录
前言
一、搭建环境
1.1整个实验的环境 以及服务器信息
1.2主从服务器时间同步
1.2.1下载ntpdate 命令
1.2.2使用ntpdate 命令同步时间
1.3关闭防火墙和防火墙增强功能
1.4从库同主库
二、安装MySQL
2.1、环境准备
2.2获取压缩包并源码解压与依赖
2.3进入MySQL解压文件目录,CMake 编译配置
2.4编译安装
2.5MySQL配置
2.6MYSQL服务及登录修改密码
2.7 从服务器同主服务器,步骤同上
三、配置主从同步
3.1修改master 配置
3.2配置从数据库
3.3测试主从配置
总结
前言
在当今数据驱动的业务场景中,数据库的高可用性和读写分离能力已成为系统架构设计的核心需求。MySQL 主从复制(Master-Slave Replication)作为一种成熟、可靠的数据同步方案,能够有效提升数据库的可用性、扩展数据备份容灾能力,并为读写分离提供基础支撑。
本文旨在为运维工程师、数据库管理员及开发人员提供一份详尽的实战指南,手把手演示如何在 CentOS 7.9 操作系统上,通过源码编译方式安装 MySQL 5.7,并配置一主两从的数据库集群。教程内容涵盖从环境准备、时间同步、防火墙配置,到 MySQL 编译安装、主从同步参数配置,以及最终的同步验证全流程。
通过跟随本文步骤,读者将能够:
- 理解 MySQL 主从复制的基本原理与核心配置项;
- 掌握在 Linux 环境下源码编译安装 MySQL 5.7 的完整流程;
- 独立完成一主两从架构的搭建与联调测试;
- 识别并规避配置过程中常见的陷阱与错误。
无论您是初次接触 MySQL 高可用架构,还是希望巩固实战技能,本文都将为您提供清晰、可复现的操作指引。让我们开始吧!
一、搭建环境
1.1整个实验的环境 以及服务器信息
1.2主从服务器时间同步
1.2.1下载ntpdate 命令
yum -y install ntpdate ntp
1.1
1.2.2使用ntpdate 命令同步时间
ntpdate ntp.aliyun.com
1-2
1.3关闭防火墙和防火墙增强功能
1.3.1关闭防火墙
systemctl disable --now firewalld
1-3
1.3.2关闭增强功能
setenforce 0 ; getenfoece
1-4
1.4从库同主库
1.4.1执行时间同步
1.4.2关闭防火墙和增强功能
二、安装MySQL
2.1、环境准备
1-5
2.2获取压缩包并源码解压与依赖
1-6
1-7
2.3进入MySQL解压文件目录,CMake编译配置
cd /otp/mysql-5.7.17
cmake \-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/usr/local/mysql \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci \-DWITH_EXTRA_CHARSETS=all \-DWITH_INNOBASE_STORAGE_ENGINE=1\-DWITH_ARCHIVE_STORAGE_ENGINE=1\-DWITH_BLACKHOLE_STORAGE_ENGINE=1\-DWITH_PERFSCHEMA_STORAGE_ENGINE=1\-DMYSQL_DATADIR=/usr/local/mysql/data \-DWITH_BOOST=/usr/local/boost \-DWITH_SYSTEMD=1
1-8
2.4编译安装
1-9
2.5MySQL配置
1-10
1-11
1-12
1-13
2.6MYSQL服务及登录修改密码
2.6.1 设置MySQL服务
1-14
1-15
1-16
2.7 从服务器同主服务器,步骤同上
三、配置主从同步
3.1修改master 配置
vim /etc/mys.cnf
2-1
3.1.2重启MySQL
2-2
3.1.3创建用户并授权
create user 'z1'@'%' identified by '123456';
grant all on *.* to 'z1'@'%' identified by '123456';
grant replication slave on *.* to 'z1'@'%' identified by '123456';
2-3
3.1.4刷新权限并查看master数据库状态
2-4
3.2配置从数据库
vim /etc/my.cnf
3.2.1在mysqld模块下修改内容
#开启二进制日志文件log-bin=master-bin#设置server id为22,slave2为23server_id = 22#从主服务器上同步日志文件记录到本地relay-log=relay-log-bin#定义relay-log的位置和名称(index索引)relay-log-index=slave-relay-bin.index
2-5
3.2.2重启MySQL并登录开启从服务器功能
systemctl restart mysqld
mysql -uroot -p123456
change master to master_host='192.168.1.111',master_user='z1',master_password='123456',master_log_file
='master-bin.000004',master_log_pos=1716;
start slave;
2-6
3.2.3 另一从库同上
注:server_id 不同
3.3测试主从配置
3-1
3-2
总结
本文详细介绍了在 CentOS 7.9 环境下搭建 MySQL 5.7 一主两从集群的完整流程。整个过程可分为三个主要阶段:
- 环境搭建:包括服务器时间同步、防火墙关闭等基础环境配置,确保主从服务器间网络与时间一致。
- MySQL 安装与配置:通过源码编译方式安装 MySQL 5.7,完成权限、配置文件、环境变量及服务启动等步骤,并在主从服务器上分别完成相同操作。
- 主从同步配置与测试:在主库开启二进制日志并创建同步账号,在从库配置 server_id、relay-log 并指向主库,最后通过数据操作验证同步是否成功。
关键注意事项:
- 主从服务器时间必须同步,避免因时间差导致数据不一致。
- MySQL 版本需保持一致,推荐使用相同版本的源码编译安装。
- 主从配置中的 server_id 必须唯一,且从库的 relay-log 配置需正确指向主库的 binlog 文件与位置。
- 配置完成后务必通过
show slave status\G检查 Slave_IO_Running 和 Slave_SQL_Running 是否为 Yes,确保同步线程正常运行。
通过以上步骤,可以搭建一个高可用、读写分离的 MySQL 主从复制环境,为后续业务的数据冗余与负载均衡提供基础支撑。