• 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

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

  • 相关阅读:
    在项目开始前,为客户做专门的“需求变更流程”培训是必要的
    代码优化四部曲:“拆套”、“解耦”、”封装“、“重构”
    这个博客的目的就是解构程序猿的世界观
    如果3D技术仅仅只是用于游戏和娱乐,那真是太暴殄天物了
    如何用Xcode 4.5开发3.5寸屏幕的iPhone 应用程序?
    所谓开发经验,其实就是对业务流程的积累
    项目经理必备的两大能力
    XML文件总是无法读取其中的数据
    在switch的case语句后,使用UIAlertView报错
    代码编写原则
  • 原文地址:https://www.cnblogs.com/lijiageng/p/6473933.html
Copyright © 2020-2023  润新知