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

posted @ 2022-07-12 16:15  胖丿虎  阅读(33)  评论(0编辑  收藏  举报