MySQL【高可用篇】05:通过MaxScale实现MySQL读写分离
·
通过MyCAT实现读写分离,可参考:
第五阶段【MySQL数据库:分区和分库分表】05:分库分表工具MyCAT下载安装配置
第五阶段【MySQL数据库:分区和分库分表】06:MyCAT实现读写分离
一、环境准备
1、环境信息
192.168.201.161 主库
192.168.201.162 从库
192.168.201.163 MaxScale
192.168.201.164 客户端机器

2、安装好一套主从复制的数据库
可参考:
第四阶段【MySQL数据库:主从复制】20:使用AI工具编写基于GTID主从复制的自动部署脚本并测试验证


3、客户端安装mysql
在164节点进行安装mysql,可参考:
Linux环境使用脚本自动安装MySQL8.0.25版本数据库
二、部署MaxScale
1、创建用户
主库创建maxscale的用户
CREATE USER 'maxscale'@'%' IDENTIFIED BY 'admin';
grant select on mysql.* to maxscale@'%';
GRANT SHOW DATABASES ON *.* TO 'maxscale'@'%';

2、创建监控用户
CREATE USER 'monitor'@'%' IDENTIFIED BY 'admin';
GRANT REPLICATION CLIENT on *.* to 'monitor'@'%';

3、创建业务用户
在161节点执行
CREATE USER 'test_rw'@'%' identified with mysql_native_password by 'admin';
grant all on test.* to test_rw@'%';

3、下载并安装maxscale
在163节点执行
cd /usr/src/
wget https://dlm.mariadb.com/3687211/MaxScale/23.08.4/yum/centos/7/x86_64/maxscale-23.08.4-1.rhel.7.x86_64.rpm
yum install maxscale-23.08.4-1.rhel.7.x86_64.rpm -y

网盘地址:
链接: https://pan.baidu.com/s/1NQpbQ3acIj1zuu_Teyt_DA?pwd=3k6g
提取码: 3k6g
4、修改配置文件
vim /etc/maxscale.cnf
内容如下:
[maxscale]
threads=auto
[server1]
type=server
address=192.168.201.161
port=3306
protocol=MySQLBackend
[server2]
type=server
address=192.168.201.162
port=3306
protocol=MySQLBackend
[MySQL-Monitor]
type=monitor
module=mysqlmon
servers=server1,server2
user=monitor
password=admin
monitor_interval=2s
[Read-Write-Service]
type=service
router=readwritesplit
servers=server1,server2
user=maxscale
password=admin
[Read-Write-Listener]
type=listener
service=Read-Write-Service
protocol=MariaDBClient
port=4006

5、启动maxscale
systemctl start maxscale
systemctl status maxscale

6、查看运行状态
maxctrl list servers

三、测试读写分离
在164节点进行测试
mysql -utest_rw -p'admin' -h 192.168.201.163 -P 4006 -e " select @@server_id"

mysql -utest_rw -p'admin' -h 192.168.201.163 -P 4006 -e "use test;begin; select @@server_id;rollback"

更多推荐



所有评论(0)