MySQL之MaxScale实现读写分离

该博客介绍了如何通过MaxScale中间件配置MySQL主从复制的读写分离。首先确保主从复制已部署,然后下载并安装MaxScale,创建监控和路由用户。接着配置MaxScale,指定服务器节点,设置监控和读写服务。启动MaxScale,并创建测试用户进行验证,确保读操作走从库,写操作走主库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.前提工作

了解并已部署好 主从复制

2.下载MaxScale中间件

https://downloads.mariadb.com/MaxScale/
在这里插入图片描述

在线下载

wget https://dlm.mariadb.com/1065384/MaxScale/2.3.20/centos/7/x86_64/maxscale-2.3.20-1.centos.7.x86_64.rpm

在这里插入图片描述
安装

yum -y install maxscale-2.3.20-1.centos.7.x86_64.rpm

在这里插入图片描述

3.master主库创建用户

已实现主从复制:主库创建的用户,能同步到从库上
创建监控用户

create user 'maxmon'@'%' identified by 'maxmon';
ALTER USER 'maxmon'@'%' IDENTIFIED WITH mysql_native_password BY 'maxmon';
grant replication slave,replication client on *.* to 'maxmon'@'%';

创建路由用户

create user 'maxrou'@'%' identified by 'maxrou';
ALTER USER 'maxrou'@'%' IDENTIFIED WITH mysql_native_password BY 'maxrou';
grant all on *.* to 'maxrou'@'%';
flush privileges;

在这里插入图片描述
在这里插入图片描述

4.配置MaxScale

vim /etc/maxscale.cnf

找到 [server1] 部分,修改其中的 address 和 port,指向 master 的 IP 和端口
复制2次 [server1] 的整块儿内容,改为 [server2] 与 [server3],同样修改其中的 address 和 port,分别指向 slave1 和 slave2
在这里插入图片描述

[MariaDB-Monitor] 部分,修改 servers 为 server1,server2,server3,修改 user 和 password 为之前创建的监控用户的信息
在这里插入图片描述

注释掉[Read-Only-Service] 部分,读写由maxscale控制即可
在这里插入图片描述

[Read-Write Service] 部分,修改 servers 为 server1,server2,server3,修改 user 和 password 为之前创建的路由用户的信息
在这里插入图片描述

注释 [Read-Only-Listener] 部分,在 [MaxAdmin-Listener] 最后添加port=6603
在这里插入图片描述

5.启动MaxScale

创建maxscale相关目录,所属用户是mysql

mkdir /usr/local/mysql/maxscale
mkdir /usr/local/mysql/maxscale/data
mkdir /usr/local/mysql/maxscale/logs
mkdir /usr/local/mysql/maxscale/cache

在这里插入图片描述
再配置下
vim /etc/maxscale.cnf

logdir=/usr/local/mysql/maxscale/logs
datadir=/usr/local/mysql/maxscale/data
piddir=/usr/local/mysql/maxscale/logs
cachedir=/usr/local/mysql/maxscale/cache

在这里插入图片描述
启动,不能以root用户启动,这里指定mysql用户

maxscale --config=/etc/maxscale.cnf --user=mysql
netstat -ntelp

在这里插入图片描述
登录MaxScale管理器

maxadmin --user=admin --password=mariadb

查看服务

list servers

在这里插入图片描述

6.测试

创建测试用户

create user 'rtest'@'%' identified by 'rtest';
ALTER USER 'rtest'@'%' IDENTIFIED WITH mysql_native_password BY 'rtest';
grant select,insert on testdb.* to 'rtest'@'%';
flush privileges;

在这里插入图片描述
mysql 连接 MaxScale

mysql -urtest -prtest -h'192.168.192.128' -P4006

查看当前服务器名称

Select @@hostname;

在这里插入图片描述
开启事务,MaxScale切换到master

start transaction;

在这里插入图片描述
回滚

rollback;

在这里插入图片描述
写操作走主库,读操作走从库,能实现读写分离

相关链接

首页
上一篇:主从复制
下一篇:用户权限管理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值