环境设置
Master MySQL服务器:192.168.122.220 node1.test.com node1
Slave MySQL服务器: 192.168.122.14 node2.test.com node2
MySQL Proxy服务器: 192.168.122.25 nfs.test.com nfs
- 安装配置MySQL-Proxy(这里我没有使用编译安装)
 
1  | [root@nfs ~]# tar xf mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz -C /usr/local  | 
- 给用户授权
在Master/Slave建立一个测试用户,因为以后客户端发送的SQL都是通过mysql-proxy服务器来转发,所以要确保可以从mysql-proxy服务器上登录MySQL主从库,分别在主机MySQL和从机MySQL上执行如下命令; 
主机MySQL上执行命令如下:
1  | mysql> grant all on *.* to 'test'@'192.168.122.25' identified by 'redhat';  | 
从机MySQL上执行命令如下:
1  | mysql> grant all on *.* to 'test'@'192.168.122.25' identified by 'redhat';  | 
在这一步,如果前面已经配置了主从复制的话,没必要写两遍;
- 复制admin.lua脚本:
这一步必有,因为mysql-proxy会到这个目录下找脚本:1
2cp -p /usr/local/mysql-proxy/lib/mysql-proxy/lua/admin.lua /usr/local/mysql-proxy/share/doc/mysql-proxy/
 
mysql-proxy的配置文件:
1  | [root@nfs local]# vim /etc/sysconfig/mysql-proxy  | 
mysql-proxy的启动脚本:
1  | 
  | 
测试
测试一
- tail /var/log/mysql-proxy
 - 进行查看启动信息
 
    
测试二: 
- mysql -utest -h192.168.122.25 -p
 - redhat
 - 实现读写分离;
 
    
测试三:进行监管 
- mysql -uadmin -h 192.168.122.25 -p –port=4041
 - admin
 - select * from backends;
 
测试遇到的问题
- MySQL Proxy默认最小4个最大8个的客户端才会实现读写分离,所以可以将其改为最小1个最大2个:
 
1  | if not proxy.global.config.rwsplit then  | 
- MySQL Proxy服务启动后,看到网页全是乱码,可以将主从数据库的配置文件my.cnf中加入如下代码:
 
1  | [mysqld]  | 
本文有参考《构建高可用Linux服务器》5.2.3,但是有一点没能明白的是本书第二步,故而改成如上所示;
以后可直接从25这个主机上操作,不需考虑后面主机;;;