一安装
需要的软件包:
- mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz
- tar zxf mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz -C /usr/local
二配置文件的修改
vim /usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua
- cd /usr/local/mysql-proxy/
- mkdir etc/
- vim mysql-proxy.conf
在 / usr/local/mysql-proxy / 路径中建立对应的 logs 目录, 否则在开启服务时会出现报错
还要将 mysql-proxy 的配置文件的权限修改为 660, 否则在开启服务器时会有权限过大的问题
开启服务:
/usr/local/mysql-proxy/bin/mysql-proxy --plugins=admin --plugins=proxy --defaults-file=/usr/local/mysql-proxy/etc/mysql-proxy.conf
尽量都进行使用绝对路径
开启的端口:
4041 为管理员端口, 3306 为 mysql-proxy 与进行读写分离的两台 mysql 的主机进行直接通信的端口, 如果使用 mysql-proxy 的默认端口, 则必须在登陆时在后面加上 -P 4040
进行管理员登陆:
mysql -uadmin -predhat -h 172.25.99.5 -P 4041
可以看到 master 的拥有 rw 权限, slave 拥有的是 ro 权限
在 master 的 mysql 对管理的用户进行授权,
- grant select,update,insert on . to proxy@172.25.99.% identified by ZHAOyan+1998; #读写分离使用的用户
- flush privileges;
在实现读写分离的时候
一定先要保证是在读写分离的基础上
进行连接:
mysql -h 172.25.99.5 -uproxy -pZHAOyan+1998
使用两个客户端进行连接, 这样可以在管理员端进行查看时两个均被 up 了, 即可
而且在客户端进行使用哪一个数据库时, 管理员端也是在实时的进行监控的
客户端几次进行操作的都是 zy 这个数据库
使用 tcpdump 或者 lsof 进行抓包, 查看 proxy 端将用户的请求扔向了哪一个 mysql 服务器
在 172.25.99.250 客户端进行写操作, server2 上进行读操作, 查看抓包情况
此为写操作, 250 向 proxy 发出请求, proxy 转向 master
此为读操作, server2 向 proxy 发出请求, proxy 转向 slave
实现了读写分离
来源: http://www.bubuko.com/infodetail-2498733.html