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,实现了读写分离

时间: 2024-10-01 07:27:01

mysql-proxy读写分离测试的相关文章

mysql proxy 读写分离

以下内容均摘录自网上.原址:http://blog.csdn.net/edwzhang/article/details/8475624 MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践 一般来说都是通过 主从复制(Master-Slave)的方式来同步数据,再通过读写分离(MySQL-Proxy)来提升数据库的并发负载能力 这样的方案来进行部署与实施的. 如下图所示: 下面进行部署: 一.MySQL的安装与配置 可以参考这篇文章:http://heylinu

mysql—proxy读写分离

mysql-proxy简介 MySQL Proxy就是这么一个中间代理层,MySQL Proxy就是一个连接池,负责将前台应用的连接请求转发给后台的数据库,并且通过使用lua脚本,可以实现复杂的连接控制和过滤,从而实现读写分离和负载平衡.对于应用来说,MySQL Proxy是完全透明的,应用则只需要连接到MySQL Proxy的监听端口即可. (图略简,请多包涵) 实验环境: master 172.16.31.31 slave 172.16.31.32 proxy 172.16.31.30 1安

MySQL Proxy 读写分离(实战总结)

规划: 主mysql服务器:192.168.1.21 从mysql服务器: 192.168.1.22 mysql读写分离器:192.168.1.23 1.读写分离服务器上解压安装包,并添加对应用户,并编辑启动脚本: # tar xf mysql-proxy-0.8.3-linux-glibc2.3-x86-64bit.tar.gz -C /usr/local/ # cd /usr/local/ # ln -sv mysql-proxy-0.8.3-linux-glibc2.3-x86-64bit

mysql proxy 读写分离 1

#查了资料折腾半天,测出来了 #参考http://blog.csdn.net/e421083458/article/details/19697701这个脚本不错. #依赖包 yum -y install gcc* gcc-c++* autoconf* automake* zlib* libxml* ncurses-devel* libmcrypt* libtool* flex* pkgconfig* libevent* glib* readline-devel #lua install cd /

mysql+mysql_proxy+haproxy+memcache (mysql的读写分离)

参考: http://www.cnblogs.com/xxcn/p/4385412.html http://blog.jobbole.com/94606/ http://www.open-open.com/lib/view/open1413274853450.html 原理:略(下次再写)图片来自:http://www.open-open.com/lib/view/open1413274853450.html 架构: master: 192.168.2.127 slave: 192.168.2.

MySQL的读写分离的几种选择

MySQL的读写分离的几种选择 MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践 原址如下: http://heylinux.com/archives/1004.html Mysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过.但在实际的生产环境中,由单台Mysql作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方面. 因此,一般来说都是通过 主从复制(Master-Slave)的方式来同步

使用Amoeba 实现MySQL DB 读写分离

Amoeba(变形虫)项目是一个开源框架,于2008年开始发布一款 Amoeba for Mysql软件: 这个软件致力于MySQL的分布式数据库前端代理层,它主要在应用层访问MySQL的时候充当SQL路由功能,专注于分布式数据库代理层(Database Proxy)开发:位于 Client.DB Server(s)之间,对客户端透明: =================================================================== 1 简介 2 准备 2.

Amoeba for MySQL的读写分离配置

一.Amoeba概述 1.amoeba简介 Amoeba是一个类似MySQL Proxy的分布式数据库中间代理层软件,是由陈思儒开发的一个开源的java项目.其主要功能包括读写分离,垂直分库,水平分库等,经过测试,发现其功能和稳定性都非常的不错,如果需要构架分布式数据库环境,采用Amoeba是一个不错的方案.目前Amoeba一共包括For aladdin,For MySQL和For Oracle三个版本,本文主要关注For MySQL版本的一个读写分离实现. Amoeba处于在应用和数据库之间,

使用代理软件mysql-proxy实现mysql的读写分离

使用代理软件mysql-proxy实现mysql的读写分离实验:172.16.1.10客户端请求mysql-proxy,判断是写还是读建立两次连接是远程连接,要授予远程连接的权限>use db;>create table test (id int);>insert into test values (10),(100);>grant all on db.* to [email protected]'%' identified by '123';在打开一个终端设置从服务器和主服务器一

Amoeba实现mysql主从读写分离

架设amoeba,实现mysql主从读写分 安装amoeba前需要先安装jdk,因为amoeba是JAVA编写的,所以需要JDK环境的支持,至于版本需要在JAVA1.5以后,mysql数据库需要在4.1以后的版本. 以下是我的实验环境. System:    CentOS 6.5 Master mysql:192.168.88.133 Slave mysql:192.168.88.135 Amoeba server:   192.168.88.131 安装mysql及配置mysql主从这里省略,