什么是 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 的表)

更新:上图的 --lua-path 参数要去掉,下图监听 prepare statement,同时监听远程数据库

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

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

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

最新文章

  1. django中的静态文件管理
  2. ruby -- 基础学习(三)设置中国时区时间
  3. ccflow学习下载网址
  4. iOS:获取图片Alpha图片
  5. HDU 3177 Crixalis's Equipment(贪婪)
  6. newlisp 接受jenkins带空格的参数
  7. SQL点滴24—监测表的变化
  8. js移动端向左滑动出现删除按钮
  9. 全景智慧城市常诚——一个实体商家“自剖”VR全景的势在必得
  10. json:JSONObject包的具体使用(JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包)
  11. 在Service中抛出异常事务未回滚问题分析与解决
  12. Activity和Window的View的移动的一些思考与体会,腾讯悬浮小火箭的实现策略
  13. Spring MVC 使用介绍(十六)数据验证 (三)分组、自定义、跨参数、其他
  14. ProgressBar三种style
  15. Cnario 3.8支持哪些操作系统?
  16. JS中toString()、toLocaleString()、valueOf()的区别
  17. django 生产环境部署建议
  18. Notepad++列编辑
  19. JPA+Hibernate 3.3 ——第一个JPA程序
  20. python分割txt文件

热门文章

  1. Python函数初识二
  2. 后端程序员必备的Linux基础知识
  3. 【quickhybrid】组件(自定义)API的实现
  4. IntelliJ 10.0.1设置系统的JDK
  5. “Hello World!”团队第六周第七次会议
  6. 基于NABCD评论作业-王者荣耀交流协会PSP DAILY
  7. java微信开发之接口连接
  8. 404 Note Found Team's First Blood
  9. 转 js事件探秘
  10. 0422“数学口袋精灵”BUG发现