mysql -proxy实现mysql数据库的读写分离

mysql -proxy

系统环境: RHEL6 x86-64 selinux and iptables disabled

主数据库:server3          172.25.27.3   #写操作

从数据库:server4          172.25.27.4   #读操作

调度主机:server5          172.25.27.5

客户端:foundation27    172.25.27.250  

[root@server5 mnt]# mv mysql-proxy-0.8.5-linux-el6-x86-64bit  mysql-proxy   #重命名

[root@server5 mnt]# mv mysql-proxy /usr/local/

[root@server5 mysql-proxy]# ls

bin  include  lib  libexec  licenses  share

[root@server5 doc]# cd mysql-proxy/

[root@server5 mysql-proxy]# pwd

/usr/local/mysql-proxy/share/doc/mysql-proxy

[root@server5 mysql-proxy]# vim rw-splitting.lua     

min_idle_connections = 1,   #将最小连接数由4改为1

max_idle_connections = 2,

 

[root@server5 mysql-proxy]# mkdir etc

[root@server5 mysql-proxy]# mkdir logs

[root@server5 mysql-proxy]# cd etc/

root@server5 etc]# vim mysql-proxy.conf  #修改proxy的配置文件

[mysql-proxy]

proxy-address=172.25.27.5:3306

proxy-read-only-backend-addresses=172.25.27.4:3306  #只读数据库地址

proxy-backend-addresses=172.25.27.3:3306       

proxy-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua

daemon=true

user=root

log-level=debug

log-file=/usr/local/mysql-proxy/logs/mysql-proxy.log

keepalive=true

admin-username=admin

admin-password=westos

admin-lua-script=/usr/local/mysql-proxy/lib/mysql-proxy/lua/admin.lua


[root@server5 etc]# chmod 660 mysql-proxy.conf

[root@server5 bin]# ./mysql-proxy --plugins=admin --plugins=proxy

--defaults-file=/usr/local/mysql-proxy/etc/mysql-proxy.conf

 

mysql> grant select, update, insert on *.* to proxy@'172.25.27.%' identified by'Hhb+1996';     #主数据库中创建调度用户并授权


mysql> use mysql;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

 

Database changed

mysql> select * from user;    #从库查看是否创建用户成功

[root@server5 etc]# mysql -uadmin -pwestos -h 172.25.27.5 -P 4041  #登陆调度主机查看调度状态,此时,没有客户端

[root@foundation27 Desktop]# mysql -h 172.25.27.5 -uproxy -pHhb+1996   #用物理主机远程登陆调度主机数据库,并进行读和写操作


[root@server5bin]# mysql -h 172.25.27.5 -uproxy -pHhb+1996    #调度主机登陆数据库查看刚才插入数据是否成功


此时,调度机上有两种状态


在主、从数据库端查看刚才插入数据是否成功


调度主机上用lsof -i :3306 来查看连接状态,发现进行进行写操作时,连接的是主数据库server3,进行读操作时,连接的是从数据库,从而实现读写分离

至此,数据库的读写分离成功实现



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值