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)
客户端当前访问的是从数据库服务器,仍然能够插入纪录。则表示成功