日期:2014-05-16  浏览次数:20742 次

Mysql-proxy分布式安装与配置
1.依赖包安装下载:

[root@centos6 ~]# yum -y install gcc gcc-c++ autoconf mysql-devel libtool pkgconfig ncurses ncurses-devel

wget http://dev.mysql.com/get/Downloads/MySQL-Proxy/mysql-proxy-0.8.2.tar.gz/from/http://mysql.oss.eznetsols.org/
wget http://monkey.org/~provos/libevent-2.0.13-stable.tar.gz
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.12.tar.gz
wget http://ftp.gnome.org/pub/gnome/sources/glib/2.18/glib-2.18.4.tar.gz
wget ftp://ftp.cwru.edu/pub/bash/readline-6.1.tar.gz
wget http://www.lua.org/ftp/lua-5.1.4.tar.gz

2.安装libevent

tar zxvf libevent-2.0.13-stable.tar.gz

cd libevent-2.0.13-stable

./configure --prefix=/usr/local/libevent

make

make install

3.安装libiconv

tar zxvf libiconv-1.12.tar.gz

cd libiconv-1.12

./configure

make && make install

4.安装glib

tar zxvf glib-2.18.4.tar.gz

cd glib-2.18.4

./configure --with-libiconv

make

make install

5.安装readline

tar zxvf readline-6.1.tar.gz

cd readline-6.1

./configure

make

make install

为了让动态链接库为系统所共享,我们这里用ldconfig

ldconfig -v

6.安装lua

tar zxvf lua-5.1.4.tar.gz

cd lua-5.1.4/src

# 64位系统,需在CFLAGS里加上-fPIC ,我们用vim编辑下src/Makefile文件,修改代码如下所示:

vi Makefile

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

#cd ..

#make linux

#make install

7.配置pkg-config 环境变量,命令如下所示:

# cp etc/lua.pc /usr/local/lib/pkgconfig/

# export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

8.安装mysql-proxy

tar zxvf mysql-proxy-0.8.2.tar.gz

cd mysql-proxy-0.8.2

./configure --prefix=/usr/local/mysql-proxy

make

make install

cp lib/rw-splitting.lua /usr/local/mysql-proxy/       #读写分离脚本

cp lib/admin.lua /usr/local/mysql-proxy/lib

二、到这里MySQL-proxy已基本安装完成,接下来就是MySQL Proxy0.8.2的测试和配置了。

MySQL Proxy环境设置说明

Master  MySQL服务器:192.168.2.117

Slave MySQL服务器:192.168.192.168.2.115

MySQL Proxy服务器:192.168.2.112

1.mysql-proxy选项说明,大家也可以用mysql-proxy –help-all查看它的帮助选项,命令如下所示:

    mysql-proxy --help-all

管理功能选项:

    --admin-address=host:port 指定一个mysqo-proxy的管理端口,缺省是4041; 
    --admin-username=<string> username to allow to log in 
    --admin-password=<string> password to allow to log in 
    --admin-lua-script=<filename> script to execute by the admin plugin

代理功能选项:

-P,--proxy-address=<host:port> 是mysql-proxy 服务器端的监听端口,缺省是4040,建议改为3306,方便开发人员写代码。
-r,--proxy-read-only-backend-addresses=<host:port> 只读Slave的地址和端口,缺省为不设置;
-b,--proxy-backend-addresses=<host:port> 远程Master地址和端口,可设置多个做failover和load balance,缺省是127.0.0.1:3306;
--proxy-skip-profiling 关闭查询分析功能, 缺省是打开的;
--proxy-fix-bug-25371 修正 mysql的libmysql版本大于5.1.12的一个#25371号bug;
-s,--proxy-lua-script=<file> 指定一个Lua脚本来控制mysql-proxy的运行和设置,这个脚本在每次新建连接和脚本发生修改的的时候将重新调用;

其他选项:

--defaults-file=<file>配置文件,可以把mysql-proxy的参数信息置入一个配置文件里,建议大家用这种配置MySQL Proxy0.8.2,比较方便;
--daemon mysql-proxy以守护进程方式运行;
--pid-file=file 设置mysql-proxy的存储PID文件的路径;
--keepalive try to restart the proxy if it crashed,保持连接启动进程会有2个, 一号进程用来监 视二号进程, 如果二号进程死掉自动重启proxy,这是新版MySQL Proxy的增加的Keepalived功能,它修正了以前MySQL Proxy容易死掉的bug,建议大家开启此功能。

完整的mysql-proxy配置文件如下:


    [mysql-proxy] 
    admin-username=root 
    admin-password=1