MySQL主从复制+代理:客户机访问Proxy服务器,读、写请求交给Proxy识别,从而降低了客户端程序的复杂度。

【192.168.4.10,192.168.4.11分别作为MySQL主、从服务器,是整个服务的后端

 另一台192.168.4.15作为MySQL代理服务器】


一、部署mysql-proxy代理服务器

[root@box ~]# rpm -ivh maxscale-2.1.2-1.rhel.7.x86_64.rpm 

1、修改配置文件

 [root@box ~]#vim  /etc/maxscale

 18 [server1]

 19 type=server

 20 address=192.168.4.11                           主

 21 port=3306

 22 protocol=MySQLBackend

 23 

 24 [server2]

 25 type=server  

 26 address=192.168.4.12                          从

 27 port=3306

 28 protocol=MySQLBackend

 39 servers=server1,server2                     监控两台服务器

 40 user=scalemon          定义监控用户

 41 passwd=123456          定义密码

 42 monitor_interval=10000          毫米

 53 #[Read-Only Service]          (53-59)注释

 54 #type=service

 55 #router=readconnroute

 56 #servers=server1

 57 #user=myuser

 58 #passwd=mypwd

 59 #router_options=slave

 64 [Read-Write Service]

 65 type=service

 66 router=readwritesplit

 67 servers=server1,server2         添加用户

 68 user=maxscale         添加权限对mysql库有读权限

 69 passwd=123456

 70 max_slave_connections=100%

 76 [MaxAdmin Service]         定义软件的管理服务

 77 type=service

 78 router=cli

 86 #[Read-Only Listener]                 (86-90)注释

 87 #type=listener

 88 #service=Read-Only Service

 89 #protocol=MySQLClient

 90 #port=4008

 94 service=Read-Write Service 定义的服务

 96 port=4006                 定义的读写端口号

 98 [MaxAdmin Listener]         定义的监听

 99 type=listener

100 service=MaxAdmin Service

101 protocol=maxscaled

102 socket=default

103 port=4009                 定义的管理端口


二、配置读写服务器(只在主服务器授权即可 从服务器会自动同步)

添加授权用户

  mysql> grant replication slave,replication client

    -> on *.*

    -> to

    -> scalemon@"%"

    -> identified by "111111";


创建路由用户

 mysql> grant select on mysql.* 

       ->to 

       ->maxscale@'%' 

       ->identified by “111111”; 


创建客户端访问用户 

mysql> grant all  on *.*  to  yaya@'%' identified by “111111”



三、在代理服务器访问本机管理服务

测试

[root@box ~]# mysql -h192.168.4.11 -uscalemon  -p111111

[root@box ~]# mysql -h192.168.4.12 -uscalemon  -p111111


启动服务

[root@ box ~]# maxscale -f /etc/maxscale.cnf 


[root@box ~]# maxadmin -uadmin -pmariadb -P4009

MaxScale> list servers     (监视服务器的状态)

Servers.

-------------------+-----------------+-------+-------------+--------------------

Server             | Address         | Port  | Connections | Status              

-------------------+-----------------+-------+-------------+--------------------

server1            | 192.168.4.11    |  3306 |           0 | Master, Running

server2            | 192.168.4.12    |  3306 |           0 | Slave, Running

-------------------+-----------------+-------+-------------+--------------------


客户端访问

mysql -h192.168.4.15 -P4006 -uyaya -p111111


MySQL [(none)]> select @@hostname;

+------------+

| @@hostname |

+------------+

| mysql-12   |

+------------+


插入新纪录

MySQL [(none)]> insert  into bbsdb.a values(111)


客户端当前访问的是从数据库服务器,仍然能够插入纪录。则表示成功