CentOS 7 搭建 MySQL 5.7 主从复制实战

蓝鲸
蓝鲸
发布时间:2026-10-15| 5人浏览过
原创

面对高并发场景,单一 MySQL 数据库往往成为系统瓶颈。通过配置 MySQL 主从复制实现读写分离,能有效分担主库压力。本文详细演示在 CentOS 7 系统中安装 MySQL 5.7,并逐步配置主从节点,包括日志同步、权限管理及故障排查,帮助您快速搭建稳定高效的数据库集群。

CentOS 环境下的 MySQL 安装

在实际项目中,服务器通常使用 Linux 发行版(如 CentOS)。为了演示清晰,我们以 CentOS 7 为基础环境进行 MySQL 5.7 的安装配置。如果你的环境是 Ubuntu,命令会有所差异。

第1步:清理冲突软件

CentOS 默认可能安装了 mariadb,它与 MySQL 存在冲突,需先卸载。

# 检查是否安装了 mariadb
yum list installed | grep mariadb

# 如果结果显示已安装,执行卸载命令
yum -y remove mariadb*

第2步:下载并安装 RPM 源

首先确保系统安装了 wget 工具,然后下载 MySQL 官方提供的 YUM 源 RPM 包:

yum install wget # 若未安装wget
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
rpm -ivh mysql57-community-release-el7-11.noarch.rpm

验证源是否安装成功:

yum repolist enabled | grep "mysql.*-community.*"

第3步:安装并启动 MySQL

yum install mysql-server
systemctl start mysqld.service

安装完成后,建议将防火墙关闭或放行相关端口(3306),并禁止开机自启防火墙:systemctl disable firewalld.service。

第4步:重置密码与远程授权

MySQL 5.7 首次安装时会生成临时密码,可在 /var/log/mysqld.log 中查找。登录成功后,建议修改密码策略以便设置简单密码:

set global validate_password_policy=0;
set password=password('123');
flush privileges;

若要允许远程连接,有两种方式:一是执行 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123';;二是直接修改 user 表中的 Host 字段为 %。

主从复制架构与准备条件

主从复制的核心在于主库(Master)写入后记录二进制日志(binlog),从库(Slave)实时拉取并回放日志。我们需要两台机器(或虚拟机):

  • 主机 (Master):IP: 192.168.248.128
  • 从机 (Slave):IP: 192.168.248.139

主机 (Master) 配置详解

在主库上执行以下操作以开启同步功能:

第1步:创建同步账号

为主库创建一个专门的同步用户,避免使用 root:

GRANT REPLICATION SLAVE ON *.* to 'rep1'@'192.168.248.139' identified by '123';
FLUSH PRIVILEGES;

第2步:修改配置文件开启 Binlog

编辑 /etc/my.cnf,添加以下内容。注意目录必须可写,server-id 必须全局唯一:

[mysqld]
log-bin=/var/lib/mysql/binlog
server-id=128
binlog-do-db = cmdb  # 指定需要同步的数据库

配置后重启服务:systemctl restart mysqld。

第3步:锁定数据并查看状态

在修改期间,若业务允许,建议锁表保证数据一致性:

show master status;

记下返回结果中的 File (文件名) 和 Position (偏移量),这将是从库初始化的起点。

从机 (Slave) 配置详解

第1步:基础配置

同样编辑 /etc/my.cnf,只需配置唯一的 server-id。例如设为 139。如果是克隆的虚拟机,请务必检查 /var/lib/mysql/auto.cnf 中的 UUID 是否冲突,必要时手动更改字符。

第2步:指向主库

在从库执行 CHANGE MASTER TO,填入上一步获取的主库信息:

change master to 
master_host='192.168.248.128',
master_port=3306,
master_user='rep1',
master_password='123',
master_log_file='binlog.000001',
master_log_pos=120;

第3步:启动并验证

启动从库线程并查看状态:

start slave;
show slave statusG;

判断成功的标准是以下两项均为 Yes:

  • Slave_IO_Running: Yes
  • Slave_SQL_Running: Yes

至此,主从环境搭建完成。在主库插入的数据会自动同步到从库。若状态不是 Yes,请检查网络连通性、密码错误或日志偏移量匹配问题。

以上就是从mysql读写分离着手提升服务器性能的详细内容,更多关于mysql读写分离提升服务器性能的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。