1.基于mysql-proxy
首先搭建好一个主从复制的mysql服务器
我这里是:
master:172.25.19.1
slave:172.25.19.2
mysql-proxy:172.25.19.3
[root@server3 ~]# tar zxf mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz -C /usr/local/
[root@server3 ~]#
[root@server3 ~]# cd /usr/local/
[root@server3 local]# mv mysql-proxy-0.8.5-linux-el6-x86-64bit/ mysql-proxy
[root@server3 local]# cd mysql-proxy/
[root@server3 mysql-proxy]# ls
bin include lib libexec licenses share
可以把bin写道环境变量里面
[root@server3 bin]# vim ~/.bash_profile
>PATH=$PATH:$HOME/bin:/usr/local/mysql-proxy/bin
[root@server3 bin]# source ~/.bash_profile
[root@server3 mysql-proxy]# mkdir conf
[root@server3 mysql-proxy]# cd conf/
[root@server3 conf]# vim mysql-proxy.conf #在这里将所加参数写入然后
[mysql-proxy]
user=root
proxy-address=0.0.0.0:3306
proxy-read-only-backend-addresses=172.25.19.2:3306
proxy-backend-addresses=172.25.19.1:3306
proxy-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua 在这个lua脚本里面将最大连接数该一下,因为是实验环境为了更快产生结果,不改也可以,多连几个就行
log-file=/usr/local/mysql-proxy/logs/mysql-proxy.log
log-level=debug
daemon=true
keepalive=true
[root@server3 conf]# mysql-proxy --defaults-file=/usr/local/mysql-proxy/conf/mysql-proxy.conf #或是在执行命令后面写入一样的
我这里最大连接为2
用三个窗口连接 远程去连接proxy端口
因为master是可以读写的嘛
当超过两个读的请求后proxy会分配给slave
下在lsof可以查看连接状态
master:
只是拥有两个
两外的在slave
slave: