CentOS 7 搭建 MySQL 5.7 主从复制实战
面对高并发场景,单一 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: YesSlave_SQL_Running: Yes
至此,主从环境搭建完成。在主库插入的数据会自动同步到从库。若状态不是 Yes,请检查网络连通性、密码错误或日志偏移量匹配问题。
以上就是从mysql读写分离着手提升服务器性能的详细内容,更多关于mysql读写分离提升服务器性能的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













