mysql 读写分离 - mysql-proxy

环境:

mysql 主库192.168.160.250

mysql 从库 192.168.160.233

mysql-proxy 192.168.110.110

安装依赖包:

wget http://www.lua.org/ftp/lua-5.1.4.tar.gz  

tar zxvf lua-5.2.3.tar.gz  

cd lua-5.2.3 

make linux

此时如果出现

lua.c:67:31: fatal error: readline/readline.h: No such file ordirectory
说明缺少libreadline-dev依赖包

执行:yum install readline-devel

下载安装proxy

wget http://mysql.cdpa.nsysu.edu.tw/Downloads/MySQL-Proxy/mysql-proxy-0.8.4-Linux-rhel5-x86-64bit.tar.gz

tar zxvf mysql-proxy-0.8.3-linux-rhel5-x86-64bit.tar.gz  -C /usr/local/

cd/usr/local/

mv mysql-proxy-0.8.3-linux-rhel5-x86-64bit/   /usr/local/mysql-proxy

配置path 路径,添加到最后一行

vim/etc/profile

PATH= $PATH:/usr/local/mysql-proxy/bin 添加到最后一行

执行生效:
source /etc/profile

修改读写分离配置文件:

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

if not proxy.global.config.rwsplit then

  proxy.global.config.rwsplit = {

  min_idle_connections = 1, #默认超过4个连接数时,才开始读写分离,改为1 测试需要

  max_idle_connections = 1, #默认8,改为1测试需要

  is_debug = false

  }

end

启动proxy:

mysql-proxy  --proxy-read-only-backend-addresses=192.168.160.233:3306  --proxy-backend-addresses=192.168.160.250:3306  --proxy-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua &

查看是否启动成功:

netstat-antup | grep proxy

关闭 proxy 进程:

killall -9 mysql-proxy

测试:

如果本地安装了mysql 可以:进入CMD ,

进入安装mysql bin目录

  链接刚刚启动的 mysql-proxy

注意:两个数据库的用户需要一致(我这里是直接用的 root ,两台服务器的密码一样),如果没有一致的用户,则在两台数据库服务器上执行:
grant all on *.* to '用户名'@'192.168.110.110' identified by '密码';

        执行insertselect 进行测试

可以多打开几个窗口(cmd)进行测试,这样容易看到效果(一般主数据库服务器是可读可写的,只有超过了我们上面配置的min_idle_connections = 1,才会转到只读数据库读取数据,所以这里多开几个客户端就能够看到效果了)

相关文章
相关标签/搜索