废话不说!
Mysql-proxy是什么,大家都知道,不知道的就别往下看了...
首先搭建 mysql 主从数据库,参考: http://blog.csdn.net/swengineer/archive/2011/03/11/6239711.aspx
下载 mysql-proxy 最新版,本文撰写时最新版本为 MySQL Proxy 0.8.1 alpha
安装 mysql-proxy 步骤如下:
解压 mysql-proxy-0.8.1-linux-glibc2.3-x86-32bit.gz
tar zxvf mysql-proxy-0.8.1-linux-glibc2.3-x86-32bit.gz
cp -R mysql-proxy-0.8.1-linux-glibc2.3-x86-32bit /usr/local/proxy-mysql
新建或编辑 /etc/mysql-proxy.cnf 文件,添加以下内容 ( 具体参数根据实际情况修改 ) :
vi /etc/mysql-proxy.cnf
[mysql-proxy]
admin-username = zhangdongyu
admin-password = 123123
daemon = true
keepalive = true
proxy-backend-addresses = 192.168.0.88:3306
proxy-read-only-backend-addresses = 192.168.0.88:3307
proxy-lua-script = /usr/local/proxy-mysql/share/doc/mysql-proxy/rw-splitting.lua
admin-lua-script = /usr/local/proxy-mysql/share/doc/mysql-proxy/admin-sql.lua
log-file = /usr/local/proxy-mysql/cn.log
log-level = debug
主要参数注解:
proxy-backend-addresses mysql 主库(写)地址
proxy-read-only-backend-addresses mysql 从库(读)地址
proxy-lua-script 读写分离脚本
admin-lua-script admin 脚本
admin-username 数据库用户名(主从上都需建立相同用户)
admin-password 数据库密码
daemon daemon 进程运行
keepalive 保持连接(启动进程会有 2 个,一号进程用来监视二号进行,如果二号进程死掉自动重建,此参数在旧版本中无法使用)
编辑 profile/.bash_profile 脚本
vi /etc/profile( 或者 .bash_profile)
LUA_PATH="/usr/local/proxy-mysql/share/doc/mysql-proxy/?.lua"
export LUA_PATH
export PATH=$PATH:/usr/local/proxy-mysql/bin
:wq
source /etc/profile
为方便建立建立 mysql-proxy.sh 脚本
#!/bin/bash
mode=$1
if [ -z "$mode" ] ; then
mode="start"
fi
case $mode in
start)
mysql-proxy --defaults-file=/etc/mysql-proxy.cnf>/usr/local/proxy-mysql/cn.log &
;;
stop)
killall -9 mysql-proxy
;;
restart)
if $0 stop ; then
$0 start
else
echo "Restart failed!"
exit 1
fi
;;
esac
exit 0
启动
mysql-proxy
sh
脚本
启动:
./mysql-proxy.sh
或
./mysql-proxy.sh start
重启:
./mysql-proxy.sh restart
停止:
./mysql-proxy.sh stop
测试:
为达到测试效果,修改
admin-sql.lua
脚本以下两行
vi /usr/local/proxy-mysql/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
is_debug = true #debug 为 true
}
end
重启
mysql-proxy
代理
开启两个终端分别连接代理:
ONE
:
./mysql -h192.168.0.88 -uzhangdongyu -p123123 -P4040
TWO
:
./mysql -h192.168.0.88 -uzhangdongyu -p123123 -P4040
可看到连接成功信息:
操作
ONE
客户端:
执行
select
语句观察数据库
log
文件
select * from z_member_info;
观察主从库日志文件,发现查询发生在主库?
主库:
192.168.0.88:3306
日志文件:
tail -f /usr/local/mysql/localstate/mysqlexecute.log
这是因为
mysql-proxy
代理会检测客户端连接,当连接没有超过
min_idle_connections
预设值时,不会进行读写分离,即查询操作会发生到主库上。
操作
TWO
客户端:
执行
select
语句观察数据库
log
文件
select * from z_member_info;
观察主从库日志文件,发现主库没有任何记录,查询日志记录在从库。
从库:
192.168.0.88:3306
日志文件:
tail -f /usr/local/mysql3307/localstate/mysqlexecute.log
操作两个终端进行
insert
操作,会发现写操作始终被主库(
3306
)日志文件记录。
至此
mysql-proxy
安装测试完成。
注:生产环境一定要根据实际情况配置相关文件,至于
lua
文件强烈推荐读者自行修改,目前正在研究
lua
文件的优化与定制,不久会发上来(果断时间再说了,用到时候再仔细研究下..忙啊..)。
- 大小: 5.4 KB
- 大小: 3.2 KB
- 大小: 784 Bytes
- 大小: 2.8 KB
- 大小: 825 Bytes
分享到:
相关推荐
### 使用mysql-proxy实现MySQL读写分离 随着业务规模的不断扩大,数据库系统往往成为整个系统中的瓶颈之一。为了提高系统的响应速度以及数据处理能力,一种常用的技术手段就是采用**读写分离**的方式。读写分离的...
3. MYSQL读写分离的实现方式:有四种常见的MYSQL读写分离实现方式,分别是MYSQL-Proxy读写分离、Amoeba读写分离、Mycat读写分离和基于程序读写分离。 4. MYSQL-Proxy读写分离:MYSQL-Proxy是MYSQL官方提供的中间件...
### MySQL-Proxy 主从复制与读写分离搭建详解 #### 一、MySQL-Proxy简介 MySQL-Proxy 是一个轻量级的代理服务器,用于在客户端应用程序和 MySQL 服务器之间建立一层中间层。它能够实现诸如负载均衡、读写分离、...
docker_compose搭建shardingSphereProxyMysql主从读写分离
MySQL Proxy 是一个开源工具,它允许用户在 MySQL 客户端和服务器之间插入一个代理层,从而实现诸如负载均衡、故障切换、读写分离等高级功能。以下是对MySQL Proxy安装配置及其相关知识点的详细说明: 1. **安装...
在本文中,我们将探讨如何利用MySQL Proxy实现一个简单的读写分离环境,并关注在配置过程中的一些关键点。 首先,读写分离是数据库高可用性和性能优化的重要策略。在主从复制的MySQL环境中,主服务器(Master)负责...
MySQL主从复制(Master-Slave)的方式来同步数据,再通过读写分离(MySQL-Proxy/Amoeba)来提升数据库的并发负载能力 这样的方案来进行部署与实施的
总结来说,MySQL主从配置和MySQL Proxy的结合使用,可以在Linux环境中实现高效、可靠的数据库管理,包括数据复制、故障切换和负载均衡。理解并熟练掌握这些技术,对于任何IT专业人士在处理大型数据库系统时都是至关...
环境: 192.168.100.210 ... 208作为mysql-proxy. 106作为测试机器.相关软件下载: lua www.lua.org mysql-proxy http://mysql.cdpa.nsysu.edu.tw/Downloads/MySQL-Proxy/1. 在208上安装lua #tar zxvf lua-5.
linux_基于主从结构读写分离MYSQL集群
MySQL主从复制与读写分离是数据库架构中的重要策略,用于提高系统性能和可用性。在高并发的互联网应用中,这种设计模式尤为常见。本文将深入探讨这两个概念及其实施方法。 **一、MySQL主从复制** MySQL主从复制是...
【MySQL主从复制与读写分离】 MySQL主从复制是一种常用的数据备份和高可用性解决方案,它可以保证在主数据库服务器发生故障时,从库能够接管服务,保证业务连续性。同时,通过读写分离,可以将读操作分散到从库,...
Amoeba 是一个基于 MySQL 的 proxy,能够集中地响应应用的请求,并根据用户事先设置的规则,将 SQL 请求发送到特定的数据库上执行,从而实现负载均衡、读写分离、高可用性等需求。 一、Amoeba 简介 Amoeba 是一个...
"方法.txt"可能包含了搭建测试环境和执行对比的具体步骤,如安装配置proxy和Mycat,设置MySQL主从复制,编写测试脚本,以及收集和分析性能数据等。"测试主从对比.docx"很可能是测试报告,详细记录了测试过程和结果,...
配置MySQL-Proxy实现读写分离通常包括以下步骤: 1. 安装MySQL-Proxy软件,例如在Linux系统中通过wget下载,然后解压缩并移动到合适的位置。 2. 配置环境变量,将MySQL-Proxy的bin目录添加到PATH环境变量中,使系统...
MySQL 主从同步、读写分离、性能调优 在本文中,我们将讨论 MySQL 主从同步、读写分离和性能调优的相关知识点。 MySQL 主从同步 MySQL 主从同步是指将一个 MySQL 服务器的数据复制到另一个 MySQL 服务器上,以便...
当db的读写量过高时,我们会备份一份或多份的从库用于做数据的读取,然后主库就主要承担写入的功能(也有读取需要,但压力不大),当db分好主从库后,我们还需要在项目实现自动连接主从库,达到读写分离的效果。...
在本文中,我们将深入探讨如何在Ubuntu 10.04.2 LTS系统上搭建MySQL Proxy,实现数据库的读写分离。MySQL Proxy是一款轻量级的应用程序,它位于客户端和MySQL服务器之间,允许我们对客户端与服务器之间的通信进行...
这里我们将探讨如何配置MySQL主从复制,以及使用Amoeba或MySQL-Proxy进行读写分离。 首先,让我们了解主从复制的基本原理。主从复制是一种异步复制模式,其中一台MySQL服务器(主服务器)处理所有的写操作,而其他...