您的位置:首页 > 数据库 > MySQL

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

2018-03-28 19:46 411 查看
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,进行读操作时,连接的是从数据库,从而实现读写分离



至此,数据库的读写分离成功实现
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: