码迷,mamicode.com
首页 > 数据库 > 详细

mysql-proxy读写分离

时间:2018-02-14 23:39:29      阅读:340      评论:0      收藏:0      [点我收藏+]

标签:建立   查看   tar.gz   通信   img   安装   权限   oca   使用   

一、安装

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

mysql-proxy读写分离

标签:建立   查看   tar.gz   通信   img   安装   权限   oca   使用   

原文地址:http://blog.51cto.com/13584122/2071684

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!