一:部署mysql-proxy代理服务器
1)安装mariadb官方提供的maxscale软件包
# rpm -ivh maxscale-2.1.2-1.rhel.7.x86_64.rpm
# vim /etc/maxscale.cnf
[maxscale] threads=1
[server1] #指定ip地址对应的名字 type=server address=192.168.4.10 #主数据库服务器ip地址 port=3306 protocol=MySQLBackend
[server2] #指定ip地址对应的名字 type=server address=192.168.4.20 #从数据库服务器ip地址 port=3306 protocol=MySQLBackend
[MySQL Monitor] #指定要监控的主机 和监控时连接的用户 type=monitor module=mysqlmon servers=server1, server2 #前边定义的主机名 user=scalemon # 用户名 passwd=111111 # 密码 monitor_interval=10000
#[Read-Only Service] #type=service #router=readconnroute #servers=server1 #user=myuser #passwd=mypwd #router_options=slave
[Read-Write Service] #定义服务器列表 type=service router=readwritesplit servers=server1, server2 #前边定义的主机名 user=maxscale # 用户名 passwd=111111 # 密码 max_slave_connections=100%
[MaxAdmin Service] type=service router=cli
#[Read-Only Listener] #type=listener #service=Read-Only Service #protocol=MySQLClient #port=4008
[Read-Write Listener] type=listener service=Read-Write Service protocol=MySQLClient port=4006 1)分别在主、从数据库服务器上添加授权用户(只在主服务器授权即可 从服务器会自动同步):
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 student@'%' identified by “111111”; //创建客户端访问用户
2)启动maxscale服务
# maxscale --config=/etc/maxscale.cnf
# netstat -utnalp | grep maxscale
# kill -9 进程id //通过杀进程的方式停止服务
二:测试配置
1)在客户端192.168.4.120上使用上边授权用户student 连接代理服务器192.168.4.100:
# mysql -h192.168.4.100 -P4006 -ustudent -p111111
MySQL [(none)]> select @@hostname; //显示当前访问的主机
MySQL [(none)]> insert into bbsdb.a values(111);//插入新纪录
2)在主从数据库分别查看
...