MySQL Proxy Spy 工作原理_新浪网友_新浪博客
MySQL Proxy Spy 工作原理
https://github.com/MysqlProxy/mysqlproxy#readme
一. 基本原理
MySQL Proxy处于MySQL Client和MySQL
Server之间,通过截断、改变并转发客户端的查询请求等然后代理和后端数据库之间的通信来实现其主要功能。
二.MySQL
网络通信工作流程
(1).连接阶段1.客户端主动连接(connection())服务端,tcp三次握手成功建立tcp连接。2.服务端向客户端发起认证初始化连接请求(协议为普通应用层协议,后面的文章将有介绍)3.客户端向服务器发送登陆认证信息4.服务端向客户端返回认证结果
(2).Query 阶段2.服务器向客户端返回查询结果(可能有三种 option)三. MySQL Proxy Spy 的介入过程
上面二所述的是正常的
MySQL网络通信过程,Spy需要做的就是介入这个过程,在这里,Spy充当两个角色,从客户端来看,它是作为服务器,从真正的MySQL服务端来看,Spy又是作为一个客户端。但是对于真正的客户端和服务器来说,Spy是透明的,它干的事情客户端和服务端都不知道。
1.工作流程
(1). MySQL
Proxy以服务器的身份接受客户端请求,根据对Spy的配置对这些客户端的请求进行分析处理
(2). 以客户端的身份转发给相应的后端数据库服务器,再接受服务器的信息,返回给客户端
2.工作方式
MySQL
Proxy通过 lua 脚本来控制连接转发的机制。主要的函数都是配合MySQL
Protocol各个过程的。通过底层Spy提供的接口,利用上层的Lua制定转发规则来操控Spy,来达到扩展的目的。