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 /home/chentp/tools

curl -R -O http://www.lua.org/ftp/lua-5.3.1.tar.gz

tar zxf lua-5.3.1.tar.gz

cd lua-5.3.1

make linux

make install

#user for daemon

useradd  mysql-proxy -s /sbin/nologin -M

#装mysql-proxy

cd /home/chentp/tools

tar xf mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz

cp -rp mysql-proxy-0.8.5-linux-el6-x86-64bit/* /application/mysql-proxy/

echo ‘export PATH=$PATH:/application/mysql-proxy/bin/‘ >>/etc/profile

tail -3 /etc/profile

source /etc/profile

#启动脚本

cat /etc/init.d/mysql-proxy

############################################

#!/bin/sh

export LUA_PATH=/application/mysql-proxy/share/doc/mysql-proxy/?.lua:/applicaton/mysql-proxy/lib/mysql-proxy/lua/?.lua

mode=$1

if [ -z "$mode" ] ; then

mode="start"

fi

case $mode in

‘start‘)

mysql-proxy --daemon \

--log-level=debug \

--user=mysql-proxy \

--keepalive \

--log-file=/var/log/mysql-proxy.log \

--plugins="proxy" \

--proxy-address=:4040 \

--proxy-backend-addresses=192.168.199.21:3306 \

--proxy-read-only-backend-addresses=192.168.199.22:3306 \

--proxy-read-only-backend-addresses=192.168.199.22:3307 \

--proxy-lua-script=/application/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua \

--plugins="admin" \

--admin-address=:4041 \

--admin-username="admin" \

--admin-password="admin" \

--admin-lua-script="/application/mysql-proxy/lib/mysql-proxy/lua/admin.lua"

;;

‘stop‘)

killall mysql-proxy

;;

‘restart‘)

if $0 stop ; then

$0 start

else

echo  "retart failed!!!"

exit 1

fi

;;

esac

exit 0

####################################################

#更改为700权限

chmod 700 /etc/init.d/mysql-proxy

#连接代理数据库mysql-proxy,用for循环去压数据库代理

for i in `seq 10000`;do echo "this is quest $i";mysql -uoldboy -p111111 -h 192.168.199.20 -P 4040 -e "select * from oldboy.test" ; done;

#连接代理数据库mysql-proxy的管理界面,查看连接的分配情况

watch ‘mysql -uadmin -padmin -h 192.168.199.20 -P 4041 -e " select * from backends;"‘

+-------------+---------------------+-------+------+------+-------------------+

| backend_ndx | address             | state | type | uuid | connected_clients |

+-------------+---------------------+-------+------+------+-------------------+

|           1 | 192.168.199.21:3306 | up    | rw   | NULL |                 2 |

|           2 | 192.168.199.22:3306 | up    | ro   | NULL |                 1 |

|           3 | 192.168.199.22:3307 | up    | ro   | NULL |                 1 |

+-------------+---------------------+-------+------+------+-------------------+

#有个坑,说明备注

--proxy-backend-addresses=192.168.199.21:3306 \    主库

--proxy-read-only-backend-addresses=192.168.199.22:3306 \    从库

--proxy-read-only-backend-addresses=192.168.199.22:3307 \    从库

时间: 2024-10-09 23:23:12

mysql proxy 读写分离 1的相关文章

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+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主从这里省略,