ubuntu

Ubuntu MariaDB读写分离实践

小樊
39
2025-09-21 06:33:17
栏目: 云计算

Ubuntu环境下MariaDB读写分离实践指南

一、前置准备

读写分离的核心基础是MariaDB主从复制,需先完成主从架构部署。建议准备2台及以上Ubuntu服务器(如master:192.168.1.100、slave:192.168.1.101),确保服务器间网络互通(关闭防火墙或放行3306端口)。

二、配置MariaDB主从复制

1. 配置主服务器(Master)

2. 配置从服务器(Slave)

三、选择读写分离中间件

常用的中间件有ProxySQL(高性能、易配置)、MySQL Router(官方轻量级)、HAProxy(TCP/HTTP负载均衡)。以下以ProxySQL为例,介绍具体配置步骤。

四、使用ProxySQL实现读写分离

1. 安装ProxySQL

在Ubuntu上通过以下命令安装:

wget https://github.com/sysown/proxysql/releases/download/v2.3.0/proxysql_2.3.0-1_amd64.deb
sudo dpkg -i proxysql_2.3.0-1_amd64.deb
sudo systemctl start proxysql
sudo systemctl enable proxysql

2. 登录ProxySQL管理接口

ProxySQL的管理端口为6032,使用默认账号admin登录:

mysql -u admin -padmin -P6032 -h127.0.0.1

3. 添加主从服务器信息

mysql_servers表中添加主从服务器地址(hostgroup_id=10表示写组,hostgroup_id=20表示读组):

INSERT INTO mysql_servers(hostgroup_id,hostname,port) VALUES (10,'192.168.1.100',3306); -- 主服务器(写组)
INSERT INTO mysql_servers(hostgroup_id,hostname,port) VALUES (20,'192.168.1.101',3306); -- 从服务器(读组)
LOAD MYSQL SERVERS TO RUNTIME;       -- 加载配置到内存
SAVE MYSQL SERVERS TO DISK;          -- 保存配置到磁盘

4. 配置主从监控

启用ProxySQL对主从状态的监控(需创建监控账号并授权):

5. 配置读写分组规则

创建读写分组(writer_hostgroup=10表示写组,reader_hostgroup=20表示读组):

INSERT INTO mysql_replication_hostgroups VALUES (10,20,'test'); -- test为逻辑库名
LOAD MYSQL SERVERS TO RUNTIME;
SAVE MYSQL SERVERS TO DISK;

6. 添加用户并关联规则

7. 测试读写分离

五、验证与优化

  1. 验证数据一致性:在主服务器插入数据,检查从服务器是否同步。
  2. 监控性能:通过ProxySQL的stats表查看请求分布(如SELECT * FROM stats.stats_mysql_query_digest)。
  3. 调整规则:根据业务需求修改balance参数(如balance=3表示读请求仅发送到从服务器)。

注意事项

0
看了该问题的人还看了