Linux mysql-proxy负载均衡

来源:互联网 发布:mac双系统安装教程win7 编辑:程序博客网 时间:2024/05/01 14:17

 

Linux mysql-proxy负载均衡

 环境:centos6.0 64位,

主要步骤:

1,搭建Master-Slaver的主从mysql数据库集群

2,安装mysql-proxy的依赖软件:gcc,glib2,readline,lua

3, 安装和配置mysql-proxy

4,测试准备

4,实际测试。

步骤1:搭建mysql的master-slaver的主从数据库集群

该方法网上和我的其他几篇文章中有介绍。

步骤2:安装mysql的依赖软件。

1,安装编译所需要的依赖包

yum -yinstall gcc gcc-c++ autoconf libevent-devel pkgconfig libtool mysql-devel makencurses ncurses-devel

2,编译安装glib2

cd

wgethttp://ftp.gnome.org/pub/gnome/sources/glib/2.18/glib-2.18.4.tar.gz

tar -xzvf glib-2.18.4.tar.gz

cd glib-2.18.4

./configure --prefix=/usr/local/glib-2.18.4

make

make install

3,编译安装readline

cd

wget ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz

tar -xzvf readline-6.2.tar.gz

cd readline-6.2

./configure

make

make install

4,安装ncurses(这一步很重要,不安装的话,第5步可能会出错)

yum install ncurses-devel

5,编译安装lua

cd

wget http://www.lua.org/ftp/lua-5.1.4.tar.gz

tar -xzvf lua-5.1.4.tar.gz

cd lua-5.1.4

#指定安装位置

sed -i 's#^INSTALL_TOP=.*#INSTALL_TOP=/usr/local/lua-5.1.4#gi' ./Makefile

#如果系统为64位请执行下面这条命令

#sed -i 's#^CFLAGS=.*#CFLAGS= -O2 -fPIC -Wall$(MYCFLAGS)#gi' ./src/Makefile

make linux

make install

mkdir /usr/local/lua-5.1.4/lib/pkgconfig

cp ./etc/lua.pc /usr/local/lua-5.1.4/lib/pkgconfig

sed -i 's#^prefix=.*#prefix= /usr/local/lua-5.1.4#gi'/usr/local/lua-5.1.4/lib/pkgconfig/lua.pc

 步骤3:编译安装mysql-proxy

cd

wgethttp://cdn.mysql.com/Downloads/MySQL-Proxy/mysql-proxy-0.8.3.tar.gz

tar -xzvf mysql-proxy-0.8.3.tar.gz

cd mysql-proxy-0.8.3

exportPKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/glib-2.18.4/lib/pkgconfig:/usr/local/lua-5.1.4/lib/pkgconfig

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

make

make install

mkdir/usr/local/mysql-proxy-0.8.3/lib/mysql-proxy/lua/new

cp ./lib/rw-splitting.lua/usr/local/mysql-proxy-0.8.3/lib/mysql-proxy/lua/new

cp ./lib/admin-sql.lua/usr/local/mysql-proxy-0.8.3/lib/mysql-proxy/lua/new

mkdir /usr/local/mysql-proxy-0.8.3/etc

mkdir /usr/local/mysql-proxy-0.8.3/logs

验证安装成功:

/usr/local/mysql-proxy-0.8.3/bin/mysql-proxy --help

步骤4:测试准备。

192.168.1.209:3306作为代理的机器

192.168.1.207:3306作为主数据库服务的机器

192.168.1.208:3306  作为从数据库服务器的机器

1,209的配置:可以放在/etc/my.cnf中

[mysql-proxy]

admin-username=root

admin-password=123456

admin-lua-script=/usr/local/mysql-proxy-0.8.3/lib/mysql-proxy/lua/admin.lua

proxy-read-only-backend-addresses=192.168.1.208:3306

proxy-backend-addresses=192.168.1.207:3306

proxy-lua-script=/usr/local/mysql-proxy-0.8.3/lib/mysql-proxy/lua/new/rw-splitting.lua

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

log-level=debug

#daemon=true

keepalive=true

截图如下:

2,给用户授权。

在Master/Slave建立一个测试用户,因为以后客户端发送的SQL都是通过mysql-proxy服务器来转发,所以要确保可以从mysql-proxy服务器上登录MySQL主从库,分别在主和从MySQL机器上执行如下所示:

1. mysql> grant all privileges on *.* to 'test'@'192.168.1.207' identified by 'test' with  grant option; 

2. mysql> grant all privileges on *.* to 'test'@'192.168.1.208' identified by 'test' with  grant option; 

3,为了能够看到读写分发,我们可以修改rw-splitting.lua脚本。

if not proxy.global.config.rwsplit then  
        proxy.global.config.rwsplit = {  
                min_idle_connections = 1,  
                max_idle_connections = 2,  
 
                is_debug = false 
        }  
end 

4,为了能够看到每个数据库的执行记录,我们可以对数据库(207,208)中的每条执行语句加上日志。

在my.cnf中加上下面的语句:

log=/var/lib/mysql/mysql.log

截图如下:

步骤5:测试

1,在209上执行下面的语句

/usr/local/mysql-proxy-0.8.3/bin/mysql-proxy-P 192.168.1.209:3306 --defaults-file=/etc/my.cnf

查看209上的日志如下图,可以看到代理启动成功了。

2,在207,208上分别打开日志查看;

此时通过数据库客户端连接209,在上面新建表,向表中插入数据,查询数据,通过日志可以看到查询是在208上执行的,其他的操作是在207上执行的。

208截图:


207截图:


3,到现在为止可以看到mysql的代理功能完成了。

0 0
原创粉丝点击