在高并发、大数据量的 Web 应用中,数据库往往成为系统性能的瓶颈。为了提升数据库的读取性能和整体可用性,数据库读写分离是一种非常有效的解决方案。本文将围绕 CentOS 系统,以 MySQL 为例,详细讲解如何搭建主从复制实现读写分离,即使是刚入门的小白也能轻松上手。
简单来说,读写分离就是将数据库的写操作(INSERT、UPDATE、DELETE)发送到主库(Master),而读操作(SELECT)则分发到一个或多个从库(Slave)。这样可以有效减轻主库的压力,提高系统整体性能和稳定性。
在开始之前,请确保你有以下环境:
登录主库服务器,编辑 MySQL 配置文件:
sudo vim /etc/my.cnf 在 [mysqld] 段落下添加以下配置:
[mysqld]server-id=1log-bin=mysql-binbinlog-do-db=your_database_name # 可选,指定同步的数据库binlog-ignore-db=mysql # 可选,忽略同步的数据库 保存并重启 MySQL 服务:
sudo systemctl restart mysqld 接下来,创建用于主从同步的用户:
mysql -u root -p-- 在 MySQL 命令行中执行CREATE USER 'repl'@'%' IDENTIFIED BY 'StrongPassword123!';GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';FLUSH PRIVILEGES; 记录当前 binlog 文件名和位置(后续从库配置需要):
SHOW MASTER STATUS; 输出类似如下:
+------------------+----------+--------------+------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |+------------------+----------+--------------+------------------+| mysql-bin.000001 | 154 | your_db | mysql |+------------------+----------+--------------+------------------+ 编辑从库的 MySQL 配置文件:
sudo vim /etc/my.cnf 添加以下配置(注意 server-id 必须唯一):
[mysqld]server-id=2relay-log=mysql-relay-binread_only=1 重启 MySQL:
sudo systemctl restart mysqld 登录 MySQL,配置主从连接:
CHANGE MASTER TO MASTER_HOST='主库IP地址', MASTER_USER='repl', MASTER_PASSWORD='StrongPassword123!', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=154;START SLAVE; 检查从库状态:
SHOW SLAVE STATUS\G 如果看到 Slave_IO_Running: Yes 和 Slave_SQL_Running: Yes,说明主从复制已成功启动!
完成主从配置后,还需在应用层实现读写分离。常见做法包括:
至此,你已经成功在 CentOS 上搭建了基于 MySQL 主从复制 的读写分离架构。这种 数据库高可用架构 能显著提升系统性能和容灾能力。
通过本教程,相信你已经掌握了 CentOS数据库读写分离 的核心配置方法。赶紧动手试试吧!
本文由主机测评网于2025-12-01发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025121841.html