zoukankan      html  css  js  c++  java
  • mysql proxy代理安装和配置

    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 root@192.168.1.219  // 登录主数据库服务器

           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

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

  • 相关阅读:
    C connect实现Timeout效果(Linux)
    QSS网址
    C实现读写文件
    crond守护进程实现定时监控某进程占有内存的大小
    Ubuntu17安装Chrome有效
    Ubuntu16安装wine(转)
    直方图均衡化
    函数后面的const修饰符的作用
    C 线程学习记录
    Override Fuction 调用——到底使用的是谁的函数
  • 原文地址:https://www.cnblogs.com/lijiageng/p/6473933.html
Copyright © 2011-2022 走看看