MySQL Proxy 是一种在网络上使用 MySQL 网络协议进行通信的应用,提供了一或多个 MySQL server 与一或多个 MySQL client 之间的通信功能。由于 MySQL Proxy 使用的是 MySQL 网络协议,故其可以在不做任何修改的情况下,配合任何符合该协议的且与 MySQL 兼容的客户端一起使用。这其中也包括 MySQL 的命令行客户端,任何使用了 MySQL 客户端库的客户端,以及任何支持 MySQL 网络协议的连接器(connector)。
在最基本的配置下,MySQL Proxy 仅简单的将自身至于服务器和客户端之间,负责将 query 从客户端传递到 MySQL 服务器,再将来自 MySQL 服务器的应答返回给适当的客户端。在更加高级的配置下,MySQL Proxy 可以用来监视和改变客户端和服务器之间的通信。查询注入(query interception)功能允许你增加性能分析命令(profiling),且可以通过 Lua 脚本语言对注入的命令进行脚本化控制。
通过拦截来自客户端的 query ,proxy 能够插入额外的 query 到要发送给服务器的 query 列表中,然后在收到来自服务器的结果后再将额外信息移除。通过这个功能,你可以返回原始 query 对应的结果给客户端,同时还能为每一个 query 添加额外的信息性语句,例如,可以监控这些语句的执行时间和进度,或者分别对返回结果进行日志记录。
proxy 允许你对 query 执行额外的监控、过滤,或者操纵,而不需要你对客户端做任何修改,甚至可以做到令客户端不感知其正在于 proxy 通信而不是与真正的 MySQL 服务器通信。
该文档覆盖了 MySQL Proxy 0.8.2 。同时 MySQL Proxy 包含第三方代码。关于第三方组件的 license 参看附录 A 。
[Warning] MySQL Proxy is currently an Alpha release and should not be used within production environments.
[Important] MySQL Proxy is compatible with MySQL 5.0 or later.