目录前言一、搭建环境1.1整个实验的环境 以及服务器信息1.2主从服务器时间同步1.2.1下载ntpdate 命令1.2.2使用ntpdate 命令同步时间1.3关闭防火墙和防火墙增强功能1.4从库同主库二、安装MySQL2.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整个实验的环境 以及服务器信息环境部署cetos7.9虚拟机服务环境Master服务器:192.168.1.111 mysql5.7slave1服务器:192.168.1.116 mysql5.7Slave2服务器:192.168.1.17 mysql5.71.2主从服务器时间同步1.2.1下载ntpdate 命令yum -y install ntpdate ntp1.11.2.2使用ntpdate 命令同步时间ntpdate ntp.aliyun.com1-21.3关闭防火墙和防火墙增强功能1.3.1关闭防火墙systemctl disable --now firewalld1-31.3.2关闭增强功能setenforce 0 ; getenfoece1-41.4从库同主库1.4.1执行时间同步1.4.2关闭防火墙和增强功能二、安装MySQL2.1、环境准备yum-yinstallgccgcc-cncurses ncurses-devel bison cmake1-52.2获取压缩包并源码解压与依赖tar -zxvf mysql-5.7.17.tar.gz-C/opt1-6tar -zxvf boost_1_59_0.tar.gz-C/usr/local/mv/usr/local/boost_1_59_0 /usr/local/boost1-72.3进入MySQL解压文件目录CMake编译配置cd /otp/mysql-5.7.17cmake \-DCMAKE_INSTALL_PREFIX/usr/local/mysql \-DMYSQL_UNIX_ADDR/usr/local/mysql/mysql.sock \-DSYSCONFDIR/etc \-DSYSTEMD_PID_DIR/usr/local/mysql \-DDEFAULT_CHARSETutf8 \-DDEFAULT_COLLATIONutf8_general_ci \-DWITH_EXTRA_CHARSETSall \-DWITH_INNOBASE_STORAGE_ENGINE1\-DWITH_ARCHIVE_STORAGE_ENGINE1\-DWITH_BLACKHOLE_STORAGE_ENGINE1\-DWITH_PERFSCHEMA_STORAGE_ENGINE1\-DMYSQL_DATADIR/usr/local/mysql/data \-DWITH_BOOST/usr/local/boost \-DWITH_SYSTEMD11-82.4编译安装make-j2makeinstall1-92.5MySQL配置2.5.1权限配置useradd -M -s /sbin/nologn mysqlchown-Rmysql:mysql /usr/local/mysql/ #属组 -R递归chownmysql:mysql /etc/my.cnf #mysql配置文件1-102.5.2修改配置文件vim /etc/my.cnf1-112.5.3环境变量设置echoPATH$PATH:/usr/local/mysql/bin /etc/profilesource/etc/profile1-122.5.4数据库初始化cd/usr/local/mysql/bin/./mysqld \--initialize-insecure\--usermysql \--basedir/usr/local/mysql \--datadir/usr/local/mysql/data1-132.6MYSQL服务及登录修改密码2.6.1 设置MySQL服务cp/usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/2.6.2启动MySQL并开启自启systemctl daemon-reloadsystemctlstartmysqld.servicesystemctl enable mysqldnetstat-anpt|grep33061-142.6.3账号密码管理设置mysqladmin-uroot-ppassword123456 第一次登录密码为空直接enter1-15登录mysql-uroot-p1234561-162.7 从服务器同主服务器步骤同上注MySQL版本必须一样三、配置主从同步3.1修改master 配置vim /etc/mys.cnf3.1.1在mysqld模块下修改内容开启二进制日志文件之后生成的日志名为master-bin log_binmaster-bin开启从服务器日志同步 log_slave-updatestrue2-13.1.2重启MySQL2-23.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-33.1.4刷新权限并查看master数据库状态2-43.2配置从数据库vim /etc/my.cnf3.2.1在mysqld模块下修改内容#开启二进制日志文件log-binmaster-bin#设置server id为22slave2为23server_id 22#从主服务器上同步日志文件记录到本地relay-logrelay-log-bin#定义relay-log的位置和名称index索引relay-log-indexslave-relay-bin.index2-53.2.2重启MySQL并登录开启从服务器功能systemctl restart mysqldmysql -uroot -p123456change master to master_host192.168.1.111,master_userz1,master_password123456,master_log_filemaster-bin.000004,master_log_pos1716;start slave;2-63.2.3 另一从库同上注server_id 不同3.3测试主从配置3-13-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 主从复制环境为后续业务的数据冗余与负载均衡提供基础支撑。