MYSQL主从复制搭建
目录
前言
一、搭建环境
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 主从复制环境,为后续业务的数据冗余与负载均衡提供基础支撑。
