一、安装

需要的软件包: 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 实现了读写分离。