使用mysql-proxy代理实现msyql数据库读写分离
要实现读写分离,可以先看看如何实现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数据库读写分离的更多相关文章
- mysql proxy 数据库读写分离字符集乱码
mysql proxy 数据库读写分离字符集乱码 解决办法 在对应配置后端数据库服务器的配置.cnf中加入如下代码 init-connect='SET NAME UTF8' skip-characte ...
- MySQL+Amoeba实现数据库读写分离
参考:https://www.cnblogs.com/liuyisai/p/6009379.html 一,Amoeba是什么 Amoeba(变形虫)项目,专注 分布式数据库 proxy 开发.座落与C ...
- mysql proxy代理安装和配置
mysql proxy代理安装和配置 服务器说明: 192.168.1.219 mysql主库(主从复制) 192.168.1.177 mysql从库(主从复制) 192.168.1.202 ...
- MySQL数据库读写分离、读负载均衡方案选择
MySQL数据库读写分离.读负载均衡方案选择 一.MySQL Cluster外键所关联的记录在别的分片节点中性能很差对需要进行分片的表需要修改引擎Innodb为NDB因此MySQL Cluster不适 ...
- Mysql 实现数据库读写分离
Amoeba+Mysql实现数据库读写分离 一.Amoeba 是什么 Amoeba(变形虫)项目,专注 分布式数据库 proxy 开发.座落与Client.DB Server(s)之间.对客户端透明. ...
- 161220、使用Spring AOP实现MySQL数据库读写分离案例分析
一.前言 分布式环境下数据库的读写分离策略是解决数据库读写性能瓶颈的一个关键解决方案,更是最大限度了提高了应用中读取 (Read)数据的速度和并发量. 在进行数据库读写分离的时候,我们首先要进行数据库 ...
- 170301、使用Spring AOP实现MySQL数据库读写分离案例分析
使用Spring AOP实现MySQL数据库读写分离案例分析 原创 2016-12-29 徐刘根 Java后端技术 一.前言 分布式环境下数据库的读写分离策略是解决数据库读写性能瓶颈的一个关键解决方案 ...
- centos MySQL主从配置 ntsysv chkconfig setup命令 配置MySQL 主从 子shell MySQL备份 kill命令 pid文件 discuz!论坛数据库读写分离 双主搭建 mysql.history 第二十九节课
centos MySQL主从配置 ntsysv chkconfig setup命令 配置MySQL 主从 子shell MySQL备份 kill命令 pid文件 discuz!论坛数 ...
- 使用Spring AOP实现MySQL数据库读写分离案例分析
一.前言 分布式环境下数据库的读写分离策略是解决数据库读写性能瓶颈的一个关键解决方案,更是最大限度了提高了应用中读取 (Read)数据的速度和并发量. 在进行数据库读写分离的时候,我们首先要进行数据库 ...
随机推荐
- 3 Ways of JDK Source Code Attachment in Eclipse---reference
You wanna look at a JVM class while you are coding and you cannot. Here is the solution. First of al ...
- Android(java)学习笔记184:生成 4种 不同权限的文件
1.首先我们编写一个生成 4种 不同权限的文件的程序案例: (1)首先是activity_main.xml文件: <RelativeLayout xmlns:android="http ...
- ubuntu 12.04 编译安装 nginx
下载源码包 nginx 地址:http://nginx.org/en/download.html 编译前先安装两个包: 直接编译安装会碰到缺少pcre等问题,这时候只要到再安装两个包就ok sudo ...
- Mysql INNER,LEFT ,RIGHT join的使用
JOIN 按照功能大致分为如下三类: INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录. LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录. RIG ...
- Hello World深入理解
每个编程人员都知道第一个都是Hello World, 可是只是单知道 用,不知道为何会这样,就一直学的只是皮毛. 学东西,不能知其然而不知其所以然.这样永远达不到境界. 我们用编辑器eclipse 创 ...
- Javascript基础学习(3)_对象和数组
一.对象是一种无序的属性集合,每个属性都有自己的名字和值. 1.创建对象 花括号内逗号分隔 var person = { "Name" : "LiCheng", ...
- 初学HTML5系列一:简单介绍
最近很闲,就想着学点东西,然后就瞄中了html5,以前只看过很简单的一些,这次是系统的学下,顺便也记录下.废话不多说,开始正题. 稍微介绍下html5,html5是W3C和WHATWG 合作的结果. ...
- A题笔记(8)
No. 2878 No. 2559 都是输入两个数,让你来判断是否符合要求的 特别注意 2878 , 题目中要求 1<=a,b<=2^64-1(2的64次方-1)= 18446744073 ...
- (九)Struts2 防重复提交
所有的学习我们必须先搭建好Struts2的环境(1.导入对应的jar包,2.web.xml,3.struts.xml) 第一节:重复提交示例演示 struts.xml <?xml version ...
- redis数据类型(字符串)
字符串 这是最简单Redis类型.如果你只用这种类型,Redis就像一个可以持久化的memcached服务器 127.0.0.1:6379> set mykey somevalue OK 127 ...