要实现读写分离,可以先看看如何实现mysql数据库主从:http://www.cnblogs.com/sustudy/p/4174189.html

mysql-proxy下载地址(要看好对应版本):http://dev.mysql.com/downloads/mysql-proxy/

读写分离实验环境:

  mysql-proxy服务器的IP地址:192.168.20.3

  主数据库的ip地址:192.168.20.4

  从数据库的ip地址:192.168.20.5

步骤如下:

  1、解压下载好的mysql-proxy的包

    tar -xzvf mysql-proxy-0.8.5-linux-rhel5-x86-32bit.tar.gz

  2、复制已经解压好的mysql-proxy的文件夹到/usr/loca/文件夹下

    cp -p mysql-proxy-0.8.5-linux-rhel5-x86-32bit mysql-proxy

  3、在/etc文件夹下创建msql-proxy的配置文件:mysql-proxy.cnf

    vi mysql-proxy.cnf(内容如下:)

    [mysql-proxy]

    admin-username = root############连接主从数据库的用户名

    admin-password = 123456############连接主从数据库的密码

    daemon = true ############daemon进程运行

    keepalive = true############保持连接(启动进程会有2个,一号进程用来监视二号进行,如果二号进程死掉自动重建,此参数在旧版本中无法使用)

    proxy-backend-addresses = 192.168.20.4:3306 ############mysql主库(写)地址

    proxy-read-only-backend-addresses = 192.168.20.5:3306############mysql从库(读)地址

    proxy-lua-script = /usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua############读写分离脚本

    admin-lua-script = /usr/local/mysql-proxy/share/doc/mysql-proxy/admin-sql.lua############admin脚本

    log-file = /usr/local/mysql-proxy/cn.log############mysql-proxy的日志

    log-level = debug

  4、配置环境变量,导入lua脚本和添加mysql-proxy的命令

    vi /etc/profile(增加以下内容)

    LUA_PATH="/usr/local/proxy-mysql/share/doc/mysql-proxy/?.lua"

    export LUA_PATH

    export PATH=$PATH:/usr/local/mysql-proxy/bin

    保存profile文件,让修改立即生效,可以输入命令:source /etc/profile

  5、开启mysql-proxy代理:

    mysql-proxy --defaults-file=/etc/mysql-proxy.cnf>/usr/local/proxy-mysql/cn.log &

以上5个步骤顺利完成,就可以测试了。测试步骤如下:

  1、修改/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua文件,快速开启分离。

    if not proxy.global.config.rwsplit then

    proxy.global.config.rwsplit = {

    min_idle_connections = 1,   #修改最小连接为1

     max_idle_connections = 2,   #修改最大连接为2,当终端超过2个,就会开启读写分离

    is_debug = true            #debug为true

    }

    end

  3、实时查看/usr/local/mysql-proxy/cn.log。该日志记录着mysql-proxy的情况

    tail -f /usr/local/mysql-proxy/cn.log

  2、开启两个终端,连接代理192.168.20.3,有两个终端就会开启读写分离

    终端一连接:mysql -h192.168.20.3 -uroot -p123456 -P4040

    终端二连接:mysql -h192.168.20.3 -uroot -p123456 -P4040

    这里的用户名root和密码123456是主数据库和从数据库的密码

  4、对终端一进行读操作,对终端二进行写操作,进行多次数据库操作。

  5、此时cn.log就会有变动,就可以看出区别了。

该实验流程是建立在无任何错误的情况下,实际中遇到的问题,可以搜索引擎解决,然后,在进行下一步。

    

使用mysql-proxy代理实现msyql数据库读写分离的更多相关文章

  1. mysql proxy 数据库读写分离字符集乱码

    mysql proxy 数据库读写分离字符集乱码 解决办法 在对应配置后端数据库服务器的配置.cnf中加入如下代码 init-connect='SET NAME UTF8' skip-characte ...

  2. MySQL+Amoeba实现数据库读写分离

    参考:https://www.cnblogs.com/liuyisai/p/6009379.html 一,Amoeba是什么 Amoeba(变形虫)项目,专注 分布式数据库 proxy 开发.座落与C ...

  3. mysql proxy代理安装和配置

    mysql proxy代理安装和配置 服务器说明: 192.168.1.219   mysql主库(主从复制) 192.168.1.177   mysql从库(主从复制) 192.168.1.202 ...

  4. MySQL数据库读写分离、读负载均衡方案选择

    MySQL数据库读写分离.读负载均衡方案选择 一.MySQL Cluster外键所关联的记录在别的分片节点中性能很差对需要进行分片的表需要修改引擎Innodb为NDB因此MySQL Cluster不适 ...

  5. Mysql 实现数据库读写分离

    Amoeba+Mysql实现数据库读写分离 一.Amoeba 是什么 Amoeba(变形虫)项目,专注 分布式数据库 proxy 开发.座落与Client.DB Server(s)之间.对客户端透明. ...

  6. 161220、使用Spring AOP实现MySQL数据库读写分离案例分析

    一.前言 分布式环境下数据库的读写分离策略是解决数据库读写性能瓶颈的一个关键解决方案,更是最大限度了提高了应用中读取 (Read)数据的速度和并发量. 在进行数据库读写分离的时候,我们首先要进行数据库 ...

  7. 170301、使用Spring AOP实现MySQL数据库读写分离案例分析

    使用Spring AOP实现MySQL数据库读写分离案例分析 原创 2016-12-29 徐刘根 Java后端技术 一.前言 分布式环境下数据库的读写分离策略是解决数据库读写性能瓶颈的一个关键解决方案 ...

  8. centos MySQL主从配置 ntsysv chkconfig setup命令 配置MySQL 主从 子shell MySQL备份 kill命令 pid文件 discuz!论坛数据库读写分离 双主搭建 mysql.history 第二十九节课

    centos  MySQL主从配置 ntsysv   chkconfig  setup命令  配置MySQL 主从 子shell  MySQL备份  kill命令  pid文件  discuz!论坛数 ...

  9. 使用Spring AOP实现MySQL数据库读写分离案例分析

    一.前言 分布式环境下数据库的读写分离策略是解决数据库读写性能瓶颈的一个关键解决方案,更是最大限度了提高了应用中读取 (Read)数据的速度和并发量. 在进行数据库读写分离的时候,我们首先要进行数据库 ...

随机推荐

  1. InnoDB还是MyISAM (摘录)

    两种类型最主要的差别就是Innodb 支持事务处理与外键和行级锁.而MyISAM不支持.所以MyISAM往往就容易被人认为只适合在小项目中使用. 我作为使用MySQL的用户角度出发,Innodb和My ...

  2. Java基础知识强化之IO流笔记31:转换流出现的原因和格式

    1. 由于字节流操作中文不是特别方便,所以Java就提供了转换流.  字符流 = 字节流 + 编码表 2. 编码表 由字符及其对应数值组成的一张表 常见的编码表: • ASCII/Unicode字符集 ...

  3. DOS和UNIX文本文件之间相互转换的方法

    在Unix/Linux下可以使用file命令查看文件类型,如下: file dosfile.txt 使用dos2unix 一般Linux发行版中都带有这个小工具,只能把DOS转换为UNIX文件,命令如 ...

  4. Windows7服务无法启动的解决

    这周六,我接到了一个很诡异的案例,表现为任务栏右下角网络连接图标始终为一个红叉,已排除网卡硬件.链路和网卡驱动的问题.主板都新换了一块,可是问题依旧,这无疑将问题的根源指向了操作系统.本想通过网络疑难 ...

  5. IE8下网页中的视频会遮挡住顶层DIV的解决办法

    在IE8浏览器下,发现网页中的视频会遮挡住本来固定在最顶层的DIV.即便使用z-index也无法解决.但是其他浏览器是正常的. 解决的办法很简单,就是在调用flash视频播放器的时候,加上一个参数“o ...

  6. C# 与 C++ 交互

    参考: http://www.cnblogs.com/liping13599168/archive/2011/03/31/2000320.html Platform Invoke Tutorial:h ...

  7. C# 实现的多线程异步Socket数据包接收器框架

    转载自Csdn : http://blog.csdn.net/jubao_liang/article/details/4005438 几天前在博问中看到一个C# Socket问题,就想到笔者2004年 ...

  8. 浅谈.net中的params关键字

    先举个例子: 代码如下: class Program { static void Main(string[] args) { Console.WriteLine(Sum(1)); Console.Wr ...

  9. Linux Shell编程学习笔记——目录(附笔记资源下载)

    LinuxShell编程学习笔记目录附笔记资源下载 目录(?)[-] 写在前面 第一部分 Shell基础编程 第二部分 Linux Shell高级编程技巧 资源下载 写在前面 最近花了些时间学习She ...

  10. framework 4.5.1安装时发生严重错误

    http://jingyan.baidu.com/article/a501d80c0a74b4ec630f5ee5.html http://jingyan.baidu.com/article/d807 ...