MySQL Proxy 读写分离

十月 13th, 2009 Posted in 4.数据库, mysql | 阅读次数: 1,477 次

制作:高进波
时间:2009-10-13

MySQL Proxy项目已经嵌入了LUA语言,当初希望得到的功能.都已经实现了
包括
负载均衡,故障切换,SQL语句变形等等,有了SQL变形,则很多功能,例如数据库的垂直以及水平分割,都可以移出应用程序层,这样开发人员的负担就大大降低了.

1.环境:
CentOS 5.1
MySQL Proxy 0.6.1
只选择Development Tools其他组件未安装
路径:
lua执行程序: /usr/local/bin/lua
mysql-proxy执行程序: /usr/local/sbin/mysql-proxy
mysql-proxy配置文件: /usr/local/share/mysql-proxy

下面是MySQL Proxy的安装步骤
首先安装lua.由于MySQL Proxy 用到lua作为内嵌配置脚本语言
所以make的时候需要用到lua的文件
下载,解压并进入lua目录
make ansi
make install
export LUA_CFLAGS="-I/usr/local/include"
export LUA_LIBS="-L/usr/local/lib -llua -ldl"
export LDFLAGS="-lm"

安装glib包
#yum install glib2-devel
安装libevent
#yum install libevent-devel
安装check
#yum install check
安装libtool
#yum install libtool
安装SVN
#yum install subversion
安装mysql开发包
#yum install mysql-devel(如果是手动安装,则只要保证mysql.h能够被系统找到即可)
正式安装MySQL Proxy
从svn上获取最新代码
svn co http://svn.mysql.com/svnpublic/mysql-proxy/trunk mysql-proxy
cd mysql-proxy
./autogen.sh
./configure
./make
./make install

测试mysql proxy是否正常运行
#mysql-proxy -V

执行读写分离
mysql-proxy –proxy-read-only-backend-addresses=192.168.210.132:3306 –proxy-backend-addresses=192.168.210.131:3306 –proxy-lua-script=/usr/local/share/mysql-proxy/rw-splitting.lua > /var/log/mysql-proxy/mysql-proxy.log &

=====================================================================

2.ubuntu上安装
apt-get install mysql-proxy

读写分离脚本
修改默认连接,进行快速测试,不修改的话要等达到连接数时才读写分离
vim /usr/share/mysql-proxy/rw-splitting.lua
        proxy.global.config.rwsplit = {
                min_idle_connections = 1,        #默认是4
                max_idle_connections = 1,        #默认是8

                is_debug = false
        }

执行读写分离
mysql-proxy  –proxy-read-only-backend-addresses=10.0.0.6:3306 –proxy-backend-addresses=10.0.0.5:3306
    –proxy-lua-script=/usr/share/mysql-proxy/rw-splitting.lua >/var/log/mysql-proxy/mysql-proxy.log &

读写测试
需要开放连接权限,如
grant all on *.* to root@’%’ identified by ‘ylmf’;

最少三个连接才会读写分离
mysql -h 10.0.0.10 -P 4040 -uroot -pylmf    #连接到5
mysql -h 10.0.0.10 -P 4040 -uroot -pylmf    #连接到5
mysql -h 10.0.0.10 -P 4040 -uroot -pylmf    #连接到6

1)往一个表写入一些数据,然后查询,主/从数据一样

2)slave stop后再写入数据,然后查询,这时显示的内容是从上面的,可以看出读写分离了

完成!

相关日志:

Tags:

4 Responses to “MySQL Proxy 读写分离”

  1. 美容 Says:

    美容…

    美容护肤最基本的一点就是要保持皮肤的滋润和水分,在日常的护肤中…


  2. Resources Says:

    Related Websites…

    [...]here are some other links to sites that we find everyday so here are some popular sites we like today[...]…


  3. Related Resources Says:

    My Recommended Websites…

    [...]some new websites on the web we love, even if they are not related to ours. Check them out[...]…


  4. flat screen protector Says:

    Online Article……

    [...]The info mentioned in the article is some of the best available [...]………


留下您的脚印