MySQL Proxy是一个处于你的client端和MySQL server端之间的简单程序,它可以监测、分析或改变它们的通信。它使用灵活,没有限制,常见的用途包括:负载平衡,故障、查询分析,查询过滤和修改等等。[1]
MySQL Proxy就是这么一个中间层代理,简单的说,MySQL Proxy就是一个连接池,负责将前台应用的连接请求转发给后台的数据库,并且通过使用lua脚本,可以实现复杂的连接控制和过滤,从而实现读写分离和负载平衡。对于应用来说,MySQL Proxy是完全透明的,应用则只需要连接到MySQL Proxy的监听端口即可。当然,这样proxy机器可能成为单点失效,但完全可以使用多个proxy机器做为冗余,在应用服务器的连接池配置中配置到多个proxy的连接参数即可。
MySQL Proxy更强大的一项功能是实现“读写分离”,基本原理是让主数据库处理事务性查询,让从库处理SELECT查询。数据库复制被用来把事务性查询导致的变更同步到集群中的从库。
以上摘自百度百科
我看重的功能 是负载均衡,故障转移,通过和MySQL 主从复制配合(MASTER ,SLAVE ),还可以实现 ‘读写分离’.
一。安装
参考网上一堆资料,使用源码安装还是失败。以后有时间再研究。转向使用二进制安装,内已包含LUA5.1等
操作系统为CentOS 5.5 32位,从官网下载MySQL Proxy 0.8.2
下载地址为:
# wget -c http://dev.mysql.com/get/Downloads/MySQL-Proxy/mysql-proxy-0.8.2-linux-rhel5-x86-32bit.tar.gz/from/ftp://ftp.stu.edu.tw/pub/Unix/Database/Mysql/
# tar mysql-proxy-0.8.2-linux-rhel5-x86-32bit.tar.gz -C /usr/local
# mv mysql-proxy-0.8.2-linux-rhel5-x86-32bit mysql-proxy
增加路径
#vim ~/.bash_profile
PATH=$PATH:$HOME/bin:/usr/local/mysql-proxy/bin
export PATH
二、配置
下载写好的服务脚本:
#wget -c http://customcode.googlecode.com/files/mysql-proxy
# cp mysql-proxy /etc/init.d/mysql-proxy
修改
# vim /etc/init.d/mysql-proxy
PROXY_PATH=/usr/local/mysql-proxy/bin
改成unix模式
:set fileformat=unix
# chmod 755 /etc/init.d/mysql-proxy
# chkconfig mysql-proxy on
修改配置文件
# vi /etc/sysconfig/mysql-proxy
# options to mysql-proxy
# do not remove --daemon
PROXY_OPTIONS="--proxy-backend-addresses=192.168.234.133:3306 --proxy-backend-addresses=192.168.234.132:3306 --daemon"
其它配置参考官网文档
http://dev.mysql.com/doc/refman/5.1/en/mysql-proxy-configuration.html
两台mysql上赋权
grant all on *.* to "root" @ "192.168.234.131";
flush privileges;
启动服务
service mysql-proxy start
三、测试
3.1.负载均衡 /etc/sysconfig/mysql-proxy 配置为
PROXY_OPTIONS="--proxy-backend-addresses=192.168.234.133:3306 --proxy-backend-addresses=192.168.234.132:3306 --daemon"
数据库服务器建同一张表t1 表中,数据不同,
use test;
CREATE TABLE `t1` (
`iCode` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL,
PRIMARY KEY (`iCode`)
);
132
insert into t1 (name) values ('master');
133
insert into t1 (name) values ('slave');
打开多个窗口,运行
mysql -h 192.168.234.131 -u -p -P 4042 -e"select name from test.t1;"
可看到不同结果,mysql-prxoy 会将查询分配到mysql服务器
3.2. 故障转移
采用1的配置,在132上停止mysql
service mysqld stop
运行:
mysql -h 192.168.234.131 -u -p -P 4042 -e"select name from test.t1;"
仍能正常查询,只有133MySQL上数据。
3.3读写分离
读写分离需依赖LUA脚本,配置文件改为:
PROXY_OPTIONS="--proxy-backend-addresses=192.168.234.133:3306 --proxy-read-only-backend-addresses=192.168.234.132:3306 \
--proxy-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua --keepalive --daemon"
133为可写,132 为只读,使用rw-splitting.lua为读写分离脚本
还需配置Master(133)-Slave(132) 复制。
分享到:
相关推荐
下载后解压,进入源码目录,然后执行`./configure`检查依赖项,再运行`make`和`make install`进行编译和安装。 7. **配置MySQL Proxy**: 安装完成后,你需要创建一个配置文件,指定代理如何连接到MySQL服务器,...
MySQL Proxy 是一个开源工具,它允许用户在 MySQL 客户端和服务器之间插入一个代理层,从而实现诸如负载均衡、故障切换、读写分离等高级功能。以下是对MySQL Proxy安装配置及其相关知识点的详细说明: 1. **安装...
6. **调试与测试**:在开发和测试环境中,MySQL Proxy 可以方便地模拟各种故障情况,帮助开发者测试应用程序的容错能力。 `mysql-proxy-0.8.5` 版本可能包含以下文件: - `mysql-proxy.exe`:MySQL Proxy 的可执行...
4. **安装 MySQL Proxy**:从源码编译 MySQL Proxy,创建自定义的安装目录,并使用 `./configure` 和 `make` 命令来编译和安装。 完成以上步骤后,MySQL Proxy 应该已经成功安装。接下来,可以通过编写 Lua 脚本来...
MySQL Proxy 是一个轻量级的中间件,它作为数据库客户端和MySQL服务器之间的代理,提供了一系列的优势和功能。MySQL Proxy 的主要优点在于其灵活性和透明性,它可以无感知地插入到应用和数据库之间,使得对数据库的...
"方法.txt"可能包含了搭建测试环境和执行对比的具体步骤,如安装配置proxy和Mycat,设置MySQL主从复制,编写测试脚本,以及收集和分析性能数据等。"测试主从对比.docx"很可能是测试报告,详细记录了测试过程和结果,...
MySQL Proxy应用入门 1 安装MySQL Proxy MySQL Proxy应用入门 2 MySQL Proxy配置选项 MySQL Proxy应用入门 3 使用MySQL Proxy MySQL UDF Mysql Proxy安装配置测 MySQL5 5 Semi synchronous Replication(半同步复制...
- **安装MySQL客户端**:安装MySQL客户端是为了让mysql-proxy能够顺利连接MySQL服务器。 3. **安装mysql-proxy**:按照文档中的步骤完成mysql-proxy的安装。 4. **配置mysql-proxy**:通过命令行指定mysql-proxy...
通过以上步骤,我们不仅成功安装了 MySQL Proxy 并配置了读写分离与负载均衡,还对 MySQL Proxy 的基本使用进行了简单的介绍。MySQL Proxy 作为一款强大的中间件工具,极大地简化了数据库集群的管理和维护工作。对于...
MySQL Proxy 是一种轻量级的中间件,用于在客户端应用程序和 MySQL 服务器之间提供透明的代理服务,尤其适用于实现数据库的读写分离和负载均衡。它允许你在客户端和服务器之间插入一个可编程的层,通过 Lua 脚本来...
如果在测试过程中禁用了复制(如`REPLICATION`),可能会影响数据的一致性和Proxy的正常工作。 **总结** MySQL Proxy作为一个灵活的数据库中间层,对于实现读写分离、优化数据库性能具有重要作用。了解其安装过程...
在上述描述中,我们看到了一个MySQL Proxy的安装和配置过程。 首先,通过解压并移动二进制文件和Lua脚本到相应目录,为MySQL Proxy的安装做准备。`mysql-proxy-0.6.0-linux-rhas4-x86`目录下的`sbin`目录包含了可...
MySQL Proxy是一款开源的轻量级中间件,它允许在MySQL服务器和客户端应用程序之间设置代理,以便于监控、负载均衡和数据过滤。通过使用MySQL Proxy,你可以实现对数据库访问的精细控制,提高系统的可扩展性和可靠性...
1. 下载并安装MySQL Proxy。确保下载对应操作系统的版本,如文中提到的`mysql-proxy-0.8.5-linux-glibc2.3-x86-32bit`,解压后移动到适当的目录。 2. 创建必要的目录,例如lua脚本目录和日志目录,并将示例的读写...
5. 测试和监控: 现在,你可以通过应用程序连接到代理地址(192.168.1.147),并观察数据库操作是否按预期进行读写分离。为了验证,你可以执行一些写操作(如INSERT, UPDATE, DELETE)和读操作(如SELECT),确保...
4. 测试连接:安装完成后,使用命令行或MySQL Workbench测试数据库连接,确保安装成功。 选择稳定MySQL版本时,需要注意以下几个要点: 1. **避免开发、Alpha、Beta版本**:这些早期版本可能存在重大问题或功能不...
接下来我们将深入探讨标题和描述中涉及的“sharding-proxy实现分表”这一主题。 ### 1. 分库分表介绍 分库分表是数据库水平扩展的一种常见策略,用于解决单表数据量过大导致的性能问题。随着业务的增长,数据量...