码迷,mamicode.com
首页 > 数据库 > 详细

使用 mysql-proxy 监听 mysql 查询

时间:2019-01-18 21:51:20      阅读:250      评论:0      收藏:0      [点我收藏+]

标签:mysq   项目   远程   ima   inf   读写   ref   请求   性能   

什么是 mysql-proxy?

mysql-proxy是mysql官方提供的mysql中间件服务,上游可接入若干个mysql-client,后端可连接若干个mysql-server。

它使用mysql协议,任何使用mysql-client的上游无需修改任何代码,即可迁移至mysql-proxy上。

mysql-proxy最基本的用法,就是作为一个请求拦截,请求中转的中间层:

 

进一步的,mysql-proxy可以分析与修改请求。拦截查询和修改结果,需要通过编写Lua脚本来完成。

mysql-proxy允许用户指定Lua脚本对请求进行拦截,对请求进行分析与修改,它还允许用户指定Lua脚本对服务器的返回结果

进行修改,加入一些结果集或者去除一些结果集均可。

 

所以说,根本上,mysql-proxy是一个官方提供的框架,具备良好的扩展性,可以用来完成:

  • sql拦截与修改

  • 性能分析与监控

  • 读写分离

  • 请求路由

 

使用方法

1、下载 mysql-proxy

https://github.com/mysql/mysql-proxy/releases

 

2、解压后进入 mysql-proxy 目录

我们可以使用 mysql-proxy --help-all 查看帮助

技术分享图片

 

3、下载的安装包里面包含了一些可用的 lua 脚本,我们下面以监听查询时间为例子启动并监听本地 mysql

可用的一些 lua 脚本:

技术分享图片

 

php 测试文件(进行一个简单的 mysql 查询,然后我们可以在监听的终端看到查询语句以及查询时间输出)

技术分享图片

 

启动 mysql-proxy 并监听查询时间

技术分享图片

运行了 php 文件之后,我们可以看到如上图的输出。(本地建立了一个 名字为 proxy 的数据库,里面有一个名字为 proxy 的表)

 

监听远程的 sql 查询:指定 --proxy-backend-addresses=127.0.0.1:3306 参数,具体根据实际修改,本地还是连接 127.0.0.1:4040

 

3、测试到此为止了,本人是打算将其用于项目 sql 监控,在进行 查询 性能分析的时候会比较方便。

 

4、其他作用:读写分离等

 

使用 mysql-proxy 监听 mysql 查询

标签:mysq   项目   远程   ima   inf   读写   ref   请求   性能   

原文地址:https://www.cnblogs.com/eleven24/p/10289821.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!