7.2 MySQL读写分离

1.案例拓扑

 

 2.读写分离原理

1 多台MySQL服务器通过主从复制保持数据一致
2 由maxscale代理服务器面向客户端
3 收到SQL写请求时,交给主服务器处理
4 收到SQL读请求时,交给从服务器处理

3.构建读写分离架构

1 构建思路
2 构建主从同步
3 部署maxscale代理服务器
4 客户端访问代理服务器测试

4.部署maxscale代理服务器

MaxScale代理软件
由MariaDB公司开发
下载地址: https://downloads.mariadb.com/MaxScale/
rpm  -ivh maxscale-2.1.2-1.rhel.7.x86_64.rpm

5.配置maxscale代理服务器

[maxscale]
threads=1
#线程数
syslog=1
#写入系统日志
maxlog=1
#是否记录日志
log_warning=1
log_notice=1
log_info=1
log_debug=0
#debug开启
log_augmentation=1
#日志递增
logdir=/var/log/


[server1]
type=server
address=192.168.50.8
port=3306
protocol=MySQLBackend
[server2]
type=server
address=192.168.50.162
port=3306
protocol=MySQLBackend

[MySQL Monitor]

#主从
type=monitor
module=mysqlmon
servers=server1,server2
user=myuser
passwd=123456
monitor_interval=10000
#监控心跳10S


[Read-Write Service]
type=service
router=readwritesplit
servers=server1,server2
user=maxuser
passwd=123456
max_slave_connections=100%

[Read-Write Listener]
type=listener
service=Read-Write Service
protocol=MySQLClient
port=4006

[MaxAdmin Service]
type=service
router=cli

[MaxAdmin Listener]
type=listener
service=MaxAdmin Service
protocol=maxscaled
port=4016
socket=default

 

 5.创建用户

1.监控用户
grant all * *.* to root@haha;
grant replication slave,replication client on *.* to myuser@10.211.55.4 identified by '123456';
2.验证用户
grant  select on  mysql.* to maxuser@10.211.55.4 identified by '123456';
3.客户端测试用户
grant all on *.* to test@% identified by '123456';

6.使用客户端测试

启动服务
[root@agent ~]# maxscale -f /etc/maxscale.cnf
查看服务
[root@agent ~]# netstat -tnlp
停止服务
kill -9   进程号
mysql -P 4006 -h10.211.55.4 -utest -p123456
select @@hostname;

7.连接管理器

maxadmin -uadmin -pmariadb -P4016 (初始配置)
maxscale> list servers

 

posted @ 2021-04-26 22:20  huakai201  阅读(148)  评论(0编辑  收藏  举报