mysql proxy代理安装和配置

服务器说明:

192.168.1.219   mysql主库(主从复制)

192.168.1.177   mysql从库(主从复制)

192.168.1.202   mysql proxy代理(实现读写分离)

安装需要的基础组件,基本系统都可以满足lua的组件版本要求

安装lua(确定是否需要安装)

    yum -y install gcc* gcc-c++* autoconf* automake* zlib* libxml* ncurses-devel* libmc rypt* libtool* flex* 

pkgconfig*

Mysql Proxy的安装

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

    注:若是你安装的软件包是已编译的,则无需安装lua

    a、解压安装

    cd /usr/local/software

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

    cp mysql-proxy-0.8.5-linux-el6-x86-64bit /usr/local/mysql-proxy

    b、授权

    chmod -R 775 /usr/local/mysql-proxy

    chown -R mysql:mysql /usr/local/mysql-proxy

    c、环境变量的设置

    vim /etc/profile   //打开此文件,在文件尾部加上以下内容

    LUA_PATH="/usr/local/mysql-proxy/share/doc/mysql-proxy/?.lua"    // lua环境变量的设置

    export LUA_PATH

    export PATH=$PATH:/usr/local/mysql-proxy/bin     //mysql proxy 环境变量的设置

    保存并退出后执行下面命令

    source /etc/profile  // 使变量立即生效

    d、修改mysql proxy的读写分离脚本的配置

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

    默认最小4个(最大8个)以上的客户端连接才会实现读写分离, 现改为最小1个最大2个,便于读写分离的测试

    -- connection pool

    if not proxy.global.config.rwsplit then

            proxy.global.config.rwsplit = {

                    min_idle_connections = 1,  // 改为1

                    max_idle_connections = 2,  // 改为2

                    is_debug = false

            }

    end

    这是因为mysql-proxy会检测客户端连接, 当连接没有超过min_idle_connections预设值时,

    不会进行读写分离, 即查询操作会发生到Master上.

    e、开启防火墙端口设置

    vim /etc/sysconfig/iptables    //打开防火墙配置文件,加入以下内容

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 4040 -j ACCEPT

    注:mysql-proxy的服务端口默认为4040

    f、主库和从库给代理服务器创建登录用户并授权

    登录主库192.168.1.219,给主机192.168.1.202创建登录用户并授权

       ssh [email protected]  // 登录主数据库服务器

       mysql -uroot -p321321   // 连接mysql数据库

       mysql>grant all on *.* to 'test'@'192.168.1.202' identified by '321321';  // 创建登录用户并授权

       mysql>flush privileges;   // 刷新MySQL的系统权限相关表

    登录从库192.168.1.177,给主机192.168.1.202创建登录用户并授权,操作步骤和主库一样,

    注意:主库和从库给代理服务器创建登录用户并密码应该一致

    g、启动mysql-proxy

    vim /usr/local/mysql-proxy/mysql-proxy.sh   // 新建一个shell文件,加入以下内容

    #!/bin/sh

    mysql-proxy --daemon --log-level=debug --log-file=/var/log/mysql-proxy.log 

        --plugins=proxy -b 192.168.1.219:3306 -r 192.168.1.177:3306 

        --proxy-lua-script="/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua" --plugins=admin

        --admin-username="test" --admin-password="321321" 

        --admin-lua-script="/usr/local/mysql-proxy/share/doc/mysql-proxy/admin.lua"

    保存并退出

    chmod 775 /usr/local/mysql-proxy/mysql-proxy.sh  // 授予执行权限

    ./mysql-proxy.sh   // 启动mysql-proxy

查看mysql-proxy服务端口

netstat -tupln |grep mysql

监控启动日志

tail -f /var/log/mysql-proxy.log

测试mysql proxy读写分离

    在读写分离测试时,需要开启多个客户端窗口连接mysql-proxy

    a、打开主库的mysql 日志

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

    b、打开从库的mysql 日志

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

    c、开启多个客户端窗口连接mysql-proxy

    mysql -h192.168.1.202 -P4040 -utest -p321321

    插入数据   查询数据进行测试

发布了57 篇原创文章 · 获赞 19 · 访问量 21万+

猜你喜欢

转载自blog.csdn.net/chenlongjs/article/details/103199476