在为mysql-proxy编写lua脚步的时候,需要知道一下几个入口函数,通过这几个入口函数我们可以控制mysql-proxy的一些行为。
connect_server() 当代理服务器接受到客户端连接请求时(tcp中的握手)会调用该函数
read_handshake() 当mysql服务器返回握手相应时会被调用
read_auth() 当客户端发送认证信息(username,password,port,database)时会被调用
read_auth_result(aut) 当mysql返回认证结果时会被调用
read_query(packet) 当客户端提交一个sql语句时会被调用
read_query_result(inj) 当mysql返回查询结果时会被调用
1.connect_server使用
functionread_handshake( )local con =proxy.connectionprint("
-- lets deny clients from !127.0.0.1
if con.client.src.address ~= "127.0.0.1" then
proxy.response.type = proxy.MYSQLD_PACKET_ERR
proxy.response.errmsg = "only local connects are allowed"
print("we don't like this client");
return proxy.PROXY_SEND_RESULT
end
end
获取代理的链接对象,这个对象是全局的,可以在函