环境设置
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这个主机上操作,不需考虑后面主机;;;