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

mysql-proxy读写分离测试

时间:2015-11-05 00:49:17      阅读:288      评论:0      收藏:0      [点我收藏+]

标签:mysql   读写分离   mysql-proxy   

master:192.168.1.207

slave:192.168.1.208

msyql-proxy:192.168.1.206


主从环境搭建:暂略

mysql-proxy搭建:

一、安装lua

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

tar zxvf lua-5.1.4.tar.gz

cd lua-5.1.4

#vim src/Makefile

CFLAGS= -O2 -Wall $(MYCFLAGS)

修改为

CFLAGS= -O2 -fPIC -Wall $(MYCFLAGS)

make linux(根据系统选择,本人在centos下使用的是make generic)

make install


wget http://cdn.mysql.com//Downloads/MySQL-Proxy/mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit.tar.gz

wget http://cdn.mysql.com//Downloads/MySQL-Proxy/mysql-proxy-0.8.5.tar.gz


tar zxvf mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit.tar.gz

mv mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit /opt/mysql-proxy

mkdir -p /opt/mysql-proxy/init.d

mkdir -p /opt/mysql-proxy/run

mkdir -p /opt/mysql-proxy/log

mkdir -p /opt/mysql-proxy/scripts


tar zxvf mysql-proxy-0.8.5.tar.gz

cd mysql-proxy-0.8.5

cp lib/rw-splitting.lua /opt/mysql-proxy/scripts/

vim /opt/mysql-proxy/scripts/rw-splitting.lua

将以下有注释部分进行修改

if not proxy.global.config.rwsplit then

proxy.global.config.rwsplit = {

min_idle_connections = 1, //默认为4

max_idle_connections = 1, //默认为8

is_debug = false

}

end


启动mysql-proxy

/opt/mysql-proxy/bin/mysql-proxy --proxy-read-only-backend-addresses=192.168.1.208:3306 --proxy-backend-addresses=192.168.1.207:3306 --daemon --pid-file=/opt/mysql-proxy/run/mysql-proxy.pid --user=mysql --log-level=debug --log-file=/opt/mysql-proxy/log/mysql-proxy.log --plugins=proxy --proxy-lua-script=/opt/mysql-proxy/scripts/rw-splitting.lua  --plugins=admin --admin-username=admin --admin-password=admin --admin-lua-script=/opt/mysql-proxy/lib/mysql-proxy/lua/admin.lua --keepalive


参数解释:

PROXY_PATH=/opt/mysql-proxy/bin //定义mysql-proxy服务二进制文件路径


PROXY_OPTIONS=”–admin-username=root \ //定义内部管理服务器账号


--admin-password=password \ //定义内部管理服务器密码


--proxy-read-only-backend-addresses=192.168.10.131:3306 \ //定义后端只读从服务器地址


--proxy-backend-addresses=192.168.10.130:3306 \ //定义后端主服务器地址


--admin-lua-script=/opt/mysql-proxy/lib/mysql-proxy/lua/admin.lua \ //定义lua管理脚本路径


--proxy-lua-script=/opt/mysql-proxy/scripts/rw-splitting.lua” \ //定义lua读写分离脚本路径


PROXY_PID=/opt/mysql-proxy/run/mysql-proxy.pid //定义mysql-proxy PID文件路径


$NICELEVEL $PROXY_PATH/mysql-proxy $PROXY_OPTIONS \


--daemon \ //定义以守护进程模式启动


--keepalive \ //使进程在异常关闭后能够自动恢复


--pid-file=$PROXY_PID \ //定义mysql-proxy PID文件路径


--user=mysql \ //以mysql用户身份启动服务


--log-level=debug \ //定义log日志级别,由高到低分别有(error|warning|info|message|debug)


--log-file=/opt/mysql-proxy/log/mysql-proxy.log //定义log日志文件路径



测试步骤:

在master上授权mysql-proxy服务器连接账号

在master建立测试库和表,会同步到slave上

关闭slave(stop slave)

连接mysql-proxy

mysql -uroot -p -P4040 -h $mysql-proxy_IP    #-P4040是mysql-proxy的监听端口

连接后再测试库插入数据,并查询后退出重新连接mysql-proxy再次查询,比较两次查询的数据

第二次查询没有刚插入的数据即表示查询到了slave,实现了读写分离

mysql-proxy读写分离测试

标签:mysql   读写分离   mysql-proxy   

原文地址:http://j99d99.blog.51cto.com/2828759/1709814

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