在高并发Web应用中,数据库往往成为性能瓶颈。为了解决这一问题,RockyLinux数据库读写分离是一种常见且高效的解决方案。通过将写操作集中在主库、读操作分散到多个从库,可以显著提升系统吞吐量和可用性。
本文将手把手教你如何在RockyLinux系统上配置MySQL主从复制,从而实现基础的读写分离架构。即使你是Linux或数据库新手,也能轻松完成配置。
一、环境准备
你需要两台安装了RockyLinux 8/9 的服务器:
主数据库服务器(Master):IP地址如 192.168.1.10 从数据库服务器(Slave):IP地址如 192.168.1.11确保两台服务器已安装MySQL(推荐使用MariaDB或MySQL 8.0),并能互相通信(关闭防火墙或开放3306端口)。
二、配置主数据库(Master)
1. 编辑MySQL配置文件(通常为
/etc/my.cnf或
/etc/mysql/my.cnf):
[mysqld]server-id = 1log-bin = mysql-binbinlog-do-db = your_database_name # 可选:指定同步的数据库bind-address = 0.0.0.0
2. 重启MySQL服务:
sudo systemctl restart mysqld
3. 登录MySQL,创建用于复制的专用用户:
mysql -u root -p-- 在MySQL命令行中执行CREATE USER 'repl_user'@'%' IDENTIFIED BY 'StrongPassword123!';GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%';FLUSH PRIVILEGES;
4. 查看主库状态,记录
File和
Position值:
SHOW MASTER STATUS;
三、配置从数据库(Slave)
1. 编辑从库的MySQL配置文件:
[mysqld]server-id = 2relay-log = mysql-relay-binread_only = 1
2. 重启MySQL服务:
sudo systemctl restart mysqld
3. 登录MySQL,配置主从连接:
CHANGE MASTER TO MASTER_HOST='192.168.1.10', MASTER_USER='repl_user', MASTER_PASSWORD='StrongPassword123!', MASTER_LOG_FILE='mysql-bin.000001', -- 替换为你从主库查到的File值 MASTER_LOG_POS=154; -- 替换为你从主库查到的Position值START SLAVE;
4. 检查从库状态,确认
Slave_IO_Running和
Slave_SQL_Running均为
Yes:
SHOW SLAVE STATUS\G
四、验证读写分离效果
- 在主库插入一条测试数据:
USE your_database_name;INSERT INTO test_table (name) VALUES ('Test from Master');
- 在从库查询该数据:
SELECT * FROM test_table;
如果能看到刚插入的数据,说明RockyLinux MySQL配置成功,主从同步正常工作!
五、进阶建议:实现自动读写分离
上述配置仅完成了数据同步。要真正实现应用层的读写分离,你可以在应用程序中:
使用中间件如 ProxySQL 或 MaxScale 在代码中手动区分读写连接(例如 Laravel、Django 等框架支持多数据库连接)这种架构不仅提升了性能,还增强了系统的数据库高可用架构能力——当主库故障时,可快速切换从库为主库。
结语
通过本教程,你已经掌握了在RockyLinux上搭建MySQL主从复制的基础技能,为构建高性能、高可用的数据库系统打下了坚实基础。记住,定期监控主从延迟、备份数据、设置安全策略是运维的关键。
关键词回顾:RockyLinux数据库读写分离、MySQL主从复制、RockyLinux MySQL配置、数据库高可用架构。
