mysql读写分离

原理:

  多台数据库服务器分别提供读、写服务,均衡流量

  通过主从复制保持数据一致性(主写从读)

  代理服务器将sql写请求交给主服务器,sql读请求给从服务器

  

配置maxscale  

  修改配置文件/etc/maxscale.cnf  

[server1]               # 定义数据库服务器主机名                   

  type=server        
  address=ip            # master主机ip地址
  port=3306

  protocol=MySQLBackend



  

  [server2]               # 定义数据库服务器主机名                   

  type=server        

  address=ip            # slave主机ip地址

  port=3306

  protocol=MySQLBackend



  [MySQL Monitor]          # 定义要监视的数据库节点
  type=monitor

  module=mysqlmon

  servers=server1,server2      # 主、从数据库的主机名
  user=username          # 监控用户
  password=password        # 用户密码
  monitor_interval=10000  
  

  [Read-Write Service]        # 定义读写分离的数据库节点
  type=service

  router=readwritesplit

  servers=server1,server2      # 主、从数据库的主机名

  user=username          #  路由用户
  password=password        # 用户密码
  max_slave_connections=100%    
View Code

  创建授权用户

mysql> grant replication slave,replication client on *.* to username1@'%' identified by 'password';     # 监控用户
mysql> grant select on mysql.* to username2@'%' identified by 'password'; # 路由用户
mysql> grant all on *.* to username3@'%' identified by 'password' # 访问用户

  启动服务

maxscale --config=/etc/maxscale.cnf

ss -altnup | grep maxscale

  

  

原文地址:https://www.cnblogs.com/ray-mmss/p/10338376.html