搭建mysqlproxy的过程

搭建mysql-proxy的详细步骤

第一步:检测是否安装   

通过 rpm -qa | grep name(gcc) 的方式验证以下软件包是否已全部安装。

gcc* gcc-c++* autoconf* automake* zlib* libxml* ncurses-devel* libmcrypt* libtool* flex* pkgconfig*
libevent* glib* lua*

 

第二步:安装(第一步检测如果有就省略此步骤)

yum -y install gcc* gcc-c++* autoconf* automake* zlib* libxml* ncurses-devel* libmcrypt* libtool* flex* pkgconfig*
libevent* glib* lua*

 

第三步:单独下载lua

cd  /data/software

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 /usr/local/

编译安装lua

cd lua-5.1.4

vim src/Makefile

在 CFLAGS= -O2 -Wall $(MYCFLAGS) 这一行记录里加上-fPIC,更改为 CFLAGS= -O2 -Wall -fPIC $(MYCFLAGS) 来避免编译过程中出现错误。

make linux 

make install

(在搭建过程中如何还是出现问题,请下载

  yum install -y readline-devel ncurses-devel

  目前我也是不很清楚为何缺少这个,执行完,继续 

  make linux && make install

  参考http://tieba.baidu.com/p/2188398593

)

添加环境变量

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

 

http://m.blog.itpub.net/637517/viewspace-1766825/

 

第四步:安装my-proxy

 (挂载/data目录)

查看linux版本

cat /proc/version  

cd  /data/software

(从官网上下载与服务器版本一致的二进制文件)

 

解压:

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

mv mysql-proxy-0.85-linux-el6-x86-64bit  /usr/local/

cd /usr/local/mysql-proxy

 

创建mysql-proxy 服务管理脚本文件

 

vim mysql-proxy

#!/bin/sh

#

# mysql-proxy This script starts and stops the mysql-proxy daemon

#

# chkconfig: - 78 30

# processname: mysql-proxy

# description: mysql-proxy is a proxy daemon to mysql

# Source function library. 

  . /etc/rc.d/init.d/functions

#PROXY_PATH=/usr/local/bin

PROXY_PATH=/usr/local/mysql-proxy/bin

prog="mysql-proxy"

# Source networking configuration.

. /etc/sysconfig/network

# Check that networking is up.

[ ${NETWORKING} = "no" ] && exit 0

# Set default mysql-proxy configuration.

#PROXY_OPTIONS="--daemon"

#自己数据库的地址

PROXY_OPTIONS="--proxy-backend-addresses=192.168.1.1:3306

#自己数据库的地址

 --proxy-read-only-backend-addresses=192.168.1.2:3306 --proxy-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua"

PROXY_PID=/usr/local/mysql-proxy/run/mysql-proxy.pid

# Source mysql-proxy configuration.

if [ -f /etc/sysconfig/mysql-proxy ]; then

. /etc/sysconfig/mysql-proxy

fi

PATH=$PATH:/usr/bin:/usr/local/bin:$PROXY_PATH

# By default it's all good

RETVAL=0

# See how we were called.

case "$1" in

  start)

        # Start daemon.

        echo -n $"Starting $prog: "

        $NICELEVEL $PROXY_PATH/mysql-proxy $PROXY_OPTIONS --daemon --pid-file=$PROXY_PID --user=mysql --log-level=debug --log-file=/usr/local/mysql-proxy/log/mysql-proxy.log

        RETVAL=$?

        echo

        if [ $RETVAL = 0 ]; then

                touch /var/lock/subsys/mysql-proxy

        fi

       ;;

  stop)

        # Stop daemons.

        echo -n $"Stopping $prog: "

        killproc $prog

        RETVAL=$?

        echo

        if [ $RETVAL = 0 ]; then

                rm -f /var/lock/subsys/mysql-proxy

                rm -f $PROXY_PID

        fi

       ;;

  restart)

        $0 stop

        sleep 3

        $0 start

       ;;

  condrestart)

       [ -e /var/lock/subsys/mysql-proxy ] && $0 restart

      ;;

  status)

        status mysql-proxy

        RETVAL=$?

       ;;

  *)

        echo "Usage: $0 {start|stop|restart|status|condrestart}"

        RETVAL=1

       ;;

esac

exit $RETVAL

 

配置详情参考http://m.blog.itpub.net/637517/viewspace-1766825/

 

创建 mkdir init.d

cp mysql-proxy init.d/

chmod +x mysql-proxy

mkdir  /usr/local/mysql-proxy/run

mkdir  /usr/local/mysql-proxy/log

mkdir  /usr/local/mysql-proxy/scripts

 

 

 

第五步:配置并使用rw-splitting.lua读写分离脚本

vim  /usr/local/mysql-proxy/share/doc/mysl-proxy/rw-splitting.lua

-- connection pool
if not proxy.global.config.rwsplit then
proxy.global.config.rwsplit = {
min_idle_connections = 1, //默认为4
max_idle_connections = 2, //默认为8
is_debug = false
}
end

 

第六步:启动mysql-proxy

 

/usr/local/mysql-proxy/init.d/mysql-proxy start

 

第七步:查看日志

 

tail  -f  /usr/local/mysql-proxy/log/mysql-proxy.log

 

显示已经启动完成。

 

第八步:测试验证结果

创建用于读写分离的数据库连接用户

登陆主数据库服务器:192.168.1.1

mysql> GRANT ALL ON *.* TO 'proxy1'@'proxy服务器' IDENTIFIED BY 111111'; 

由于我们配置了主从复制功能,因此从数据库服务器192.168.56.103上已经同步了此操作 

为了清晰的看到读写分离的效果,需要暂时关闭MySQL主从复制功能 

登陆从数据库服务器192.168.1.2 

关闭Slave同步进程
mysql> stop slave; 

连接MySQL-Proxy 

mysql -uproxy1 -p111111 -P4040 -h192.168.1.3

查看自己数据库数据

 

 

参考资料

http://m.blog.itpub.net/637517/viewspace-1766825/

http://www.voidcn.com/article/p-xqrquyng-g.html

http://www.voidcn.com/article/p-hqhfzyso-oe.html

http://www.iyunv.com/thread-8775-1-1.html

http://www.voidcn.com/article/p-zacrvkcl-ur.html

相关文章
相关标签/搜索