7.2 MySQL读写分离
1、案例拓扑
2、读写分离原理
1、多台mysql服务器通过主从复制保持数据一致
2、有maxscale代理服务器面向客户端
3、收到sql写请求时,交给主服务器处理
4、收到sql读请求时,交给从服务器处理
3、构建读写分离架构
1、构建思路
2、构建主从同步
3、部署maxscale代理服务器
4、客户端访问代理服务器测试
4、部署maxscale代理服务器
下载地址:https://downloads.mariadb.com/MaxScale/
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.0.10
port=3306
protocol=MySQLBackend
[server2]
type=server
address=192.168.0.20
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=readwritersplit
servers=server1,server2
user=maxuser
passwd=123456
max_slave_connections=100%
[Read-Write Listener]
type=listener
service=Read-Writer Service
protocol=MySQLClient
port=4006
[MaxAdmin Service]
type=service
router=cli
[MaxAdmin Listener]
type=listneer
service=MaxAdmin Seervie
protocol=maxscaled
port=4016
socket=default
5、创建用户
1、监控用户
grant all * *.* to root@haha;
grant replication slave,replication client on *.* to 'myuser'@'192.168.0.30' identified by '123456';
2、验证用户
grant select on mysql.* to 'maxuser'@'192.168.0.30' identified by '123456';
3、客户端测试用户
grant all on *.* to 'test'@% identified by '123456';
6、使用客户端测试
启动服务:maxscale -f /etc/maxscale.cnf
查看服务:netstat -tnlp
停止服务:kill -9 进程号
7、连接管理器
maxadmin -uadmin -pmariadb -P4016
maxscale> list servers