zoukankan      html  css  js  c++  java
  • 使用 mysql-proxy 监听 mysql 查询

    什么是 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、其他作用:读写分离等

  • 相关阅读:
    hdu 2647 Reward
    hdu 2094 产生冠军
    hdu 3342 Legal or Not
    hdu 1285 确定比赛名次
    hdu 3006 The Number of set
    hdu 1429 胜利大逃亡(续)
    UVA 146 ID Codes
    UVA 131 The Psychic Poker Player
    洛谷 P2491消防 解题报告
    洛谷 P2587 [ZJOI2008]泡泡堂 解题报告
  • 原文地址:https://www.cnblogs.com/eleven24/p/10289821.html
Copyright © 2011-2022 走看看