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.- linux-rhel5-x86-64bit.tar.gz

   mkdir /usr/local/mysql-proxy

   cp ./ mysql-proxy-0.8.-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 '';

   mysql>use aa;

   mysql>create table tab1(id int auto_increment,name varchar() 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. –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, row affected (0.00 sec) mysql> insert into tab1 (name) values('proxy222');
Query OK, 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;

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

Centos 搭建Mysql-Proxy 读写分离的更多相关文章

  1. Linux MySQL Proxy 读写分离

    导读 因为读写分离是建立在MySQL集群主从复制的基础上,还不了解的,先看我另一篇博客:点我直达 MySQL-Proxy简介 mysql-proxy是mysql官方提供的mysql中间件服务,上游可接 ...

  2. Mycat+MySql 主从复制-读写分离 看这一篇就够了

    ​ 通过mycat和mysql的主从复制配合搭建数据库的读写分离,可以实现mysql的高可用性,下面我们来搭建mysql的读写分离. 1.一主一从 1.在node01上修改/etc/my.cnf的文件 ...

  3. 搭建基于MySQL的读写分离工具Amoeba

    搭建基于MySQL的读写分离工具Amoeba: Amoeba工具是实现MySQL数据库读写分离的一个工具,前提是基于MySQL主从复制来实现的: 实验环境(虚拟机): 主机 角色 10.10.10.2 ...

  4. Amoeba搞定mysql主从读写分离

    前言:一直想找一个工具,能很好的实现mysql主从的读写分离架构,曾经试用过mysql-proxy发现lua用起来很不爽,尤其是不懂lua脚本,突然发现了Amoeba这个项目,试用了下,感觉还不错,写 ...

  5. python实现mysql的读写分离及负载均衡

    Oracle数据库有其公司开发的配套rac来实现负载均衡,目前已知的最大节点数能到128个,但是其带来的维护成本无疑是很高的,并且rac的稳定性也并不是特别理想,尤其是节点很多的时候. 但是,相对my ...

  6. MySQL ProxySQL读写分离实践

    目的 在上一篇文章MySQL ProxySQL读写分离使用初探里初步介绍了ProxySQL的使用,本文继续介绍它的一些特点和DBProxy的性能差异.深入一些去了解ProxySQL,通过测试来说明Pr ...

  7. MySQL Router实现MySQL的读写分离

    1.简介 MySQL Router是MySQL官方提供的一个轻量级MySQL中间件,用于取代以前老版本的SQL proxy. 既然MySQL Router是一个数据库的中间件,那么MySQL Rout ...

  8. MySQL的读写分离的几种选择

    MySQL的读写分离的几种选择 MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践 原址如下: http://heylinux.com/archives/1004. ...

  9. MySQL/MariaDB读写分离配置

    DB读写分离描述 数据库的读写分离其实就是为了加减少数据库的压力:数据库的写入操作由主数据库来进行,读取操作由从数据库来进行操作.实现数据库读写分离技术是有很多方法的,在这里我就用一个比较简单的mys ...

  10. 使用mysql-proxy实现mysql的读写分离

     前言: MySQL读写分离是指让master处理写操作,让slave处理读操作,非常适用于读操作量比较大的场景,可减轻master的压力.使用mysql-proxy实现mysql的读写分离,mysq ...

随机推荐

  1. AIX下RAC搭建 Oracle10G(二)主机配置

    AIX下RAC搭建系列 AIX下RAC搭建 Oracle10G(二)主机配置 环境 节点 节点1 节点2 小机型号 IBM P-series 630 IBM P-series 630 主机名 AIX2 ...

  2. linux 命令之 watch

    watch能够帮你监測一个命令的执行结果,省得你一遍遍的手动执行.在Linux下.watch是周期性的执行下个程序.并全屏显示执行结果.你能够拿他来监測你想要的一切命令的结果变化,比方 tail 一个 ...

  3. window批处理-5 start

    作用 又一次启动一个单独窗体.在新窗体中运行命令 格式 start [/w] FileName demo bat: @echo off echo 在新窗体中打开txt文件.并等待新窗体正常退出(exi ...

  4. C#高阶与初心:(二)P/Invoke平台调用

    最近某个项目要采集交易终端的信息用于监管,主要厂商给出了API,C++版的...开启hard模式!!! C#调用C++的DLL基本就两种方法:加一个VC++项目包一层,或者使用P/Invoke(平台调 ...

  5. Mac 上VitrualBox安装CentOS6.5 调整root分区的大小

    安装centOS的时候由于选择了动态调整磁盘大小.所以分配磁盘空间的时候就没多想,直接用的default的8G,以为不够了自己会调整,没想到是个大坑 发现提示空间不足的时候root仅仅有0k了.... ...

  6. MVC程序部署后页面指向login.aspx

    MVC程序在本地没有问题,但是部署到服务器后老是跳转到Login.aspx页面,但是我的MVC程序中根本没有Login页面,看了一下链接是这样的 htttp://localhost:26290/log ...

  7. Android实现RecyclerView的下拉刷新和上拉载入很多其它

    需求 先上效果图, Material Design风格的下拉刷新和上拉载入很多其它. 源代码地址(欢迎star) https://github.com/studychen/SeeNewsV2 假设对于 ...

  8. java输入输出流实例代码

    1.编写一个程序,读取源代码文件的内容并在控制台输出.如果源文件不存在,则显示相应的错误信息. package src; import java.io.File; import java.io.Fil ...

  9. 记录001:AS11 BAPI

    未知元素(174657434)  15:05:41AS11有没有BAPI呀?有做过的吗 BAPI_FIXEDASSET_OVRTAKE_CREATE

  10. iOS中UIPickerView常见属性和方法的总结

    UIPickerView是iOS中的原生选择器控件,使用方便,用法简单,效果漂亮. @property(nonatomic,assign) id<UIPickerViewDataSource&g ...