使用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)数据的速度和并发量. 在进行数据库读写分离的时候,我们首先要进行数据库 ...
随机推荐
- 也许是关于C#的一些常见误区
写这点东西主要是看到知乎上有人在讨论相关的问题,但是有不少人都在说一些不严谨,甚至是完全错误 但是流传甚广的东西,甚至是一些大神都在说,以下根据我的回答总结. 一个很常见又很低级的误区是:认为引 ...
- GUI编程笔记(java)08:GUI通过鼠标移动到按钮上更改背景色案例
首先我们看看源代码如下: package cn.itcast_06; import java.awt.Button; import java.awt.Color; import java.awt.Fl ...
- Div+css中ul ol li dl dt dd使用
ol 有序列表.<ol><li>……</li><li>……</li><li>……</li></ol>表现 ...
- kvm安装及配置
yum install kvm libvirt python-virtinst qemu-kvm virt-viewer bridge-utils virt-install 修改网卡信息 /etc/ ...
- Html+Css+Js_之table每隔3行显示不同的两种颜色
<html> <head> <script type="text/javascript"> /** 最近因项目的需求,有这样的一个问题: 一个t ...
- CoreAnimation4-隐式动画和显式动画
事务 Core Animation基于一个假设,说屏幕上的任何东西都可以(或者可能)做动画.动画并不需要你在Core Animation中手动打开,相反需要明确地关闭,否则他会一直存在. 当你改变CA ...
- 【JQuery学习历程】1.初识JQuery
1.JQuery简介: JQuery是用js写的JavaScript库,是为了简化js对HTML元素的操作.实现动画效果并方便为网站提供ajax交互: 2.ready()方法: ready()方法和j ...
- ie9以上浏览器input文本框/密码框后面的小叉子/小眼睛问题
找了很久不知什么属性控制的这个东西,经过群友的指点重要找到.
- 机器学习系列(17)_Yelper推荐系统
1. 我们为什么需要推荐系统?“推荐”可是个当红话题.Netflix愿意用百万美金召求最佳的电影推荐算法,Facebook也为了登陆时的推荐服务开发了上百个项目,遑论现在市场上各式各样的应用都需要个 ...
- 精通 Oracle+Python,第 9 部分:Jython 和 IronPython — 在 Python 中使用 JDBC 和 ODP.NET
成功的编程语言总是会成为顶级开发平台.对于 Python 和世界上的两个顶级编程环境 Java 和 Microsoft .NET 来说的确如此. 虽然人们因为 Python 能够快速组装不同的软件组件 ...