• Centos 搭建Mysql-Proxy 读写分离


    Mysql 读写分离

    主:192.168.153.130

    从:193.168.153.131

    Mysql-Proxy:193.168.153.132

    这里省略mysql主从同步,如果有需要,请查看:Mysql,主从同步 

    1、 安装Lua

    官网下载:http://www.lua.org/download.html

    Lua 是一个小巧的脚本语言。Lua由标准C编写而成,代码简洁优美,几乎在所有操作系统和平台上都可以编译,运行。

    一个完整的Lua解释器不过200k,在目前所有脚本引擎中,Lua的速度是最快的。这一切都决定了Lua是作为嵌入式脚本的最佳选择。

     1)、安装lua需要依赖很多软件包。

     可以通过rpm -qa | grep name检查以下软件是否安装:

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

     若缺少相关的软件包,可通过yum -y install方式在线安装,或直接从系统安装光盘中找到并通过rpm -ivh方式安装。(我的话一般是直接在系统光盘软件库中找到直接rpm安装的,有些找不到,则先在网上下载然后在ftp传给linux再进行安装)

       2)、依赖软件安装完毕后则进行编译安装lua

     MySQL-Proxy的读写分离主要是通过rw-splitting.lua脚本实现的,因此需要安装lua。

     官网下载:http://www.lua.org/download.html(下载源码包)

       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 

       make linux

       make install

       export LUA_CFLAGS="-I/usr/local/include" LUA_LIBS="-L/usr/local/lib -llua -ldl" LDFLAGS="-lm"

    2、 安装mysql-proxy

       1)、首先查看linux版本确认是32位还是64为系统

     查看linux内核版本

    cat /etc/issue

     查看linux版本

    cat /proc/version

     2)、按系统位数下载

       https://downloads.mysql.com/archives/proxy/

     3)、安装

       tar –zxvf mysql-proxy-0.8.5- linux-rhel5-x86-64bit.tar.gz
    
       mkdir /usr/local/mysql-proxy
    
       cp ./ mysql-proxy-0.8.5-linux-rhel5-x86-64bit/* /usr/local/mysql-proxy
    
       cd /usr/local/mysql-proxy

    3、 读写分离测试

       1)、修改rw-splitting.lua文件

       修改默认连接,进行快速测试,不修改的话要达到连接数为4时才启用读写分离

     cp /usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua ./
    
     
    
     # vi rw-splitting.lua

       2)、修改完成后,启动mysql-proxy

       cd /usr/local/mysql/bin

       ./mysql-proxy --proxy-read-only-backend-addresses=192.168.153.131:3306 --proxy-backend-addresses=192.168.153.130:3306 --proxy-lua-script=/usr/local/mysql-proxy/rw-splitting.lua &

       参数:

         --proxy-read-only-backend-addresses  #只读服务器地址(ip)

         --proxy-backend-addresses       #服务器地址(主服务器)

         --proxy-lua-script            #lua脚本路劲

             &                     #表示后台执行

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

      用户名:proxy1

      密  码:321

       mysql>grant all on *.* to 'proxy1'@'192.168.153.132' identified by '321';
    
       mysql>use aa;
    
       mysql>create table tab1(id int auto_increment,name varchar(32) not null,primary key(id));

       【因为已经开启了主从复制所以,130、131主机mysql中都创建了这个用户】

       4)、测试登陆账号proxy1@192.168.153.132进行添加数据

     可以使用任意ip客户端登陆这个账号

     在192.168.153.132登陆:

    mysql -u proxy1 -P4040 -h192.168.153.132 –p
    mysql> use aa;
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    
    Database changed
    mysql> insert into tab1 (name) values('proxy111');
    Query OK, 1 row affected (0.00 sec)
    
    mysql> insert into tab1 (name) values('proxy222');
    Query OK, 1 row affected (0.00 sec)

         在两个mysql中查看结果:一致

     

       结果表明:账号使用

       5)、关闭131mysql的从复制

       mysql> stop slave;

     

       6)、证明写分离

       使用proxy1@192.168.95.13账号打开多个客户端进行插入数据

       mysql> insert into tab1 (name) values('stop_slave11111');
       ….
       mysql> insert into tab1 (name) values('stop_slave6666’);

     查看:

      分别登陆11mysql与12mysql查看aa.tab1中的数据

      主数据库:

     

       从数据库:

     

       结果中显示插入的数据存在与主数据库,而从数据库没有,所以证明写能够分离。

       7)、证明读分离

       使用proxy1@192.168.95.13账号登陆mysql,查看aa.tab1中的数据

       mysql>use aa;
    
       mysql>select*from tab1;

     

       结果中显示只有从数据库的数据,结合上面的测试,可以证明读分离。可以继续加入数据,查看是否是主写从读。

  • 相关阅读:
    恢复计算机崩溃数据的五款最佳Linux发行版
    不敢想象!Vim使用者的“大脑”竟是这样
    开发者和系统管理者最喜爱的开源工具Vim 起步学习的五个技巧
    .NET程序与CA对接一直提示重定向
    覆盖原有div或者Input的鼠标移上去描述
    IOS9以上如何导入铃声并设置
    c# 动态调用webserver
    没有终结点在侦听可以接受消息的*这通常是由于不正确的地址或者 SOAP操作导致的
    url 参数的加号变成空格处理
    在git 服务器挂载、创建新的项目、克隆新的项目
  • 原文地址:https://www.cnblogs.com/willamwang/p/8183824.html
Copyright © 2020-2023  润新知