要实现读写分离,可以先看看如何实现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. Cocos2d-x中获取设备语言的方法

    1.cocos2dx获取设备语言的方法:CCApplication::sharedApplication()->getCurrentLanguage() 2.cocos2dx 2.1.4支持识别 ...

  2. PureMVC(JS版)源码解析(五):SimpleCommand类

          之前我们对PureMVC中涉及到观察者模式的三个基本类(Notification/Observer/Notifier)进行了分析,接下来将对PureMVC源码中的其他类进行分析,首先我们讲 ...

  3. 在WinForm中使用委托来在其他线程中改变控件的显示

    假设winform中有两个控件: 1.ListView用来显示进度的文本提示,ID:listView_progressInfo 2.ProgressBar用来显示进度,ID:progressBar1 ...

  4. BaseAdapter优化深入分析

    BaseAdapter是一个数据适配器,将我们提供的数据格式化为ListView可以显示的数据,BaseAdapter的优化直接影响到ListView的显示效率. 我们都知道,ListView自带有回 ...

  5. Java基础知识强化之集合框架笔记58:Map集合之LinkedHashMap类的概述

    1. LinkedHashMap类的概述 LinkedHashMap:Map接口的哈希表(保证唯一性) 和 链接(保证有序性)列表实现,具有可预知的迭代顺序. 2. 代码示例: package cn. ...

  6. 我的Shell + VIM配置

    1. 安装powerline-shell 下载powerline-shell # cd /opt/ # git clone https://github.com/milkbikis/powerline ...

  7. apache目录及文件讲解

    apache目录下bin,conf,htdocs,logs,modules讲解    bin:        ab  压力测试工具        apachectl  启动命令        apxs ...

  8. Actioncontext跟ServletActionContext的区别---未完待续

    //public class BaseAction extends ActionSupport{ public static HttpServletRequest getRequest(){ retu ...

  9. (转)Spring读书笔记-----使用Spring容器(二)

    一.使用ApplicationContext 前面介绍了,我们一般不会使用BeanFactory实例作为Spring容器,而是使用ApplicationContext实例作为容器,它增强了BeanFa ...

  10. ActionLink 的一些小问题

    近日为群友解答问题时遇到一个问题 由于自己以前确实没碰到过 特此记录一下 起因是群友想要用htmlhelper实现这样一个效果 <a href="我是链接" class=&q ...