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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程