一,mysql proxy是什么,干什么用的
MySQL Proxy就是这么一个中间层代理,简单的说,MySQL Proxy就是一个连接池,负责将前台应用的连接请求转发给后台的数据库,并且通过使用lua脚本,可以实现复杂的连接控制和过滤,从而实现读写分离和负 载平衡。对于应用来说,MySQL Proxy是完全透明的,应用则只需要连接到MySQL Proxy的监听端口即可。当然,这样proxy机器可能成为单点失效,但完全可以使用多个proxy机器做为冗余,在应用服务器的连接池配置中配置到多 个proxy的连接参数即可。
mysql replication 数据同步
mysql replication 数据同步
上图中,web到底连接那个数据库,这个要程序员自己写的代友来决定的,现在是二台mysql服务器,如果有多台或者是N台呢,靠用php代码来管理连接数据库,就很郁闷了。
mysql proxy 图示
mysql proxy 图示
mysql proxy就很好解决了这个问题,对于程序端而言,web端的请求,只要到mysql proxy的连接池就OK了,剩下的工作就交给mysql proxy了。对于程序代码管理来说就简单多了。个人觉得这一点最值得借用的了。
二,mysql proxy的安装
我在安装mysql proxy的时候,提示要安装lua,其他的没有什么提示,不过我在网上看到好多要装这个,那个。
那些东西,我都已经装过了,装系统的时候,就自带的装了。
a,安装pkg-config
Ubuntu安装: apt-get install pkg-config
centos安装:yum install pkg-config
archlinux安装:pacman -S pkg-config
如果你要手动装,自己下
b,安装libevent
c,安装glib
d,安装lua
怎么安装同a
e,安装mysql在这儿不多说了,一搜网上都是
f,二进制包mysql proxy
wget http://mysql.cdpa.nsysu.edu.tw/Downloads/MySQL-Proxy/mysql-proxy-0.6.0-linux-rhas4-x86.tar.gz
#解压到mysql下面,因为这个东西可以看成是mysql的一个插件了。
tar zxvf mysql-proxy-0.6.0-linux-rhas4-x86.tar.gz -C /usr/local/mysql
mv /usr/local/mysql/mysql-proxy-0.6.0-linux-rhas4-x86 /usr/local/mysql/mysql_proxy
cd /usr/local/mysql/mysql_proxy/sbin/
echo $PATH
/usr/local/mmseg/bin:/usr/local/mmseg/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/share/eclipse:/usr/bin/perlbin/site:/usr/bin/perlbin/vendor:/usr/bin/perlbin/core
cp mysql-proxy /usr/sbin #加到环境变成里面去
查看一下是否安装成功
[root@BlackGhost sbin]# mysql-proxy --help
Usage:
mysql-proxy [OPTION...] - MySQL Proxy
Help Options:
-?, --help Show help options
--help-all Show all help options
--help-admin Show options for the admin-module
--help-proxy Show options for the proxy-module
Application Options:
-V, --version Show version
--daemon Start in daemon-mode
--pid-file= PID file in case we are started as daemon
三,启动mysql proxy
#注意:LUA_PATH="/usr/local/mysql/mysql-proxy/share/mysql-proxy/*.lua"
启动前,增加一下LUA的环境变量,不然用mysql proxy启动mysql时,会报找不到lua,会报以下错误
[root@BlackGhost share]# mysql -u root -h 127.0.0.1 -P 8888
(lua-error) [/usr/local/mysql/mysql_proxy/share/mysql-proxy/rw-splitting.lua]
...mysql/mysql_proxy/share/mysql-proxy/rw-splitting.lua:29: module 'proxy.commands' not found:
no field package.preload['proxy.commands']
no file './proxy/commands.lua'
no file '/data1/mysqldev/mysql-proxy/inst/lua/share/lua/5.1/proxy/commands.lua'
no file '/data1/mysqldev/mysql-proxy/inst/lua/share/lua/5.1/proxy/commands/init.lua'
no file '/data1/mysqldev/mysql-proxy/inst/lua/lib/lua/5.1/proxy/commands.lua'
mysql-proxy --proxy-address=127.0.0.1:8888 --proxy-read-only-backend-addresses=192.168.1.75:3306 --proxy-backend-addresses=192.168.1.91:3306 --proxy-lua-script=/usr/local/mysql/mysql_proxy/share/mysql-proxy/rw-splitting.lua &
[root@BlackGhost sbin]# ps -e|grep mysql-proxy
15804 pts/1 00:00:00 mysql-proxy
四,测试mysql proxy
1,在192.168.1.75的test数据库中,建一个test表,结构一样
2,在192.168.1.91的test数据库中,建一个test表,结构一样
mysql -u root -h 127.0.0.1 -P 8888 #利用连接池,进入数据库
use test
INSERT INTO `test` ( `name`, `sex`) VALUES ('tank', 1)
你会发现这条数据会出现在192.168.1.91的mysql的数据库中。
转载自:http://blog.51yip.com/mysql/399.html
分享到:
相关推荐
以下是对MySQL Proxy安装配置及其相关知识点的详细说明: 1. **安装过程**: - 首先,从MySQL官方下载页面获取适合您操作系统的MySQL Proxy版本。例如,在提供的文件中,使用的是`mysql-proxy-0.6.0-linux-rhas4-...
### MySQL Proxy 快速实现读写分离以及负载均衡 #### 一、概述 在数据库管理领域,MySQL Proxy 是一个开源的代理服务器,它为 MySQL 提供了一层中间件,能够帮助用户实现数据库的读写分离、负载均衡等功能,进而...
`mysql-proxy`命令用于启动代理服务,指定了一系列参数,包括管理接口地址、监听的前端端口、主库地址和只读副本的地址,以及使用的Lua脚本`rw-splitting.lua`,这个脚本定义了如何进行读写分离。 在实际应用中,...
MySQL Proxy 实现读写分离 MySQL Proxy 是一个处于 Client 端和 MySQL server 端之间的简单程序,它可以监测、分析或改变它们的通信。它使用灵活,没有限制,常见的用途包括:负载平衡,故障、查询分析,查询过滤和...
#### 安装配置MySQL-Proxy 1. **下载MySQL-Proxy**: 下载并解压MySQL-Proxy的二进制文件。 ```bash wget ...
这里我们将探讨如何配置MySQL主从复制,以及使用Amoeba或MySQL-Proxy进行读写分离。 首先,让我们了解主从复制的基本原理。主从复制是一种异步复制模式,其中一台MySQL服务器(主服务器)处理所有的写操作,而其他...
在本文中,我们将探讨如何利用MySQL Proxy实现一个简单的读写分离环境,并关注在配置过程中的一些关键点。 首先,读写分离是数据库高可用性和性能优化的重要策略。在主从复制的MySQL环境中,主服务器(Master)负责...
在AppServer上配置MySQL读写分离是提升数据库性能和可用性的重要策略,尤其在高并发、大数据量的应用场景中。MySQL Proxy是实现这一目标的一种工具,它可以动态地控制数据库连接,实现读操作与写操作的分离,从而...
为了解决这个问题,MySQL提供了一个名为`mysql-proxy`的工具,这正是"MYSQL数据库读写分离mysql-proxy 32bit包"的主题。MySQL Proxy是一个轻量级的代理服务器,它可以坐在MySQL服务器和客户端应用程序之间,动态地...
linux_基于主从结构读写分离MYSQL集群
4. MYSQL-Proxy读写分离:MYSQL-Proxy是MYSQL官方提供的中间件服务,支持无数客户端连接,同时后端可连接多台MYSQL Server服务器,可以实现读写分离和负载均衡。 5. Amoeba读写分离:Amoeba是一个基于MYSQL的代理...
配置MySQL-Proxy实现读写分离通常包括以下步骤: 1. 安装MySQL-Proxy软件,例如在Linux系统中通过wget下载,然后解压缩并移动到合适的位置。 2. 配置环境变量,将MySQL-Proxy的bin目录添加到PATH环境变量中,使系统...
在本文中,我们将详细介绍如何使用 Amoeba 实现 MySQL 读写分离的配置过程。Amoeba 是一个基于 MySQL 的 proxy,能够集中地响应应用的请求,并根据用户事先设置的规则,将 SQL 请求发送到特定的数据库上执行,从而...
总的来说,MySQL读写分离调度器是提高数据库性能的有效手段,而MySQL Proxy作为开源解决方案,为企业提供了一种灵活且低成本的实施方式。不过,随着技术的发展,企业也应关注并考虑更现代、更完善的数据库解决方案。
### MySQL-Proxy 主从复制与读写分离搭建详解 #### 一、MySQL-Proxy简介 MySQL-Proxy 是一个轻量级的代理服务器,用于在客户端应用程序和 MySQL 服务器之间建立一层中间层。它能够实现诸如负载均衡、读写分离、...
随后修改MySQL Proxy配置,使其同时连接两个主库,再次创建新表,此时两张表都会出现在两个数据库中,表明读写分离已生效。 MySQL Proxy的工作原理是,当接收到客户端的SQL请求时,会根据预设的规则(如rw-...
标题中的“Python开发的MySQL Proxy:Angel Proxy”指的是一个用Python编程语言编写的数据库中间件,它的主要功能是实现MySQL数据库的读写分离。在大型系统中,为了提高数据库的性能和可扩展性,通常会采用读写分离...
Linux运维学习笔记:Mysql中间件Atlas读写分离原理与实战知识点总结: 1. Atlas项目简介 Atlas是由奇虎360公司Web平台部基础架构团队开发的一个基于MySQL协议的数据中间层项目。它是基于MySQL官方推出的MySQL-Proxy...