关于mysql-proxy 配置lua脚本中,有几个函数需要额外记录下
1、connect_server() — 这个函数每次client连接的时候被调用,可以用这个函数来处理负载均衡,决定当前的请求发给那个后台的服务器,如果没有指定这个函数,那么就会采用简单的轮询机制。
2、read_handshake() — 这个函数在server返回初始握手信息时被调用,可以调用这个函数在验证信息发给服务器前进行额外的检查。
3、read_auth() — client发送验证信息给服务器的时候会调用这个函数。
4、read_auth_result() — 服务器验证信息返回后调用这个函数。
5、read_query() — 每次client发送查询请求函数的时候被调用,可以用这个函数对进行查询语句的修改,包括创建新的查询在原始的语句前或后,过滤掉非预期的查询,返回的最大记录条数,也可以不发送到服务器直接返回客户端等等,这个是最常用的函数。
6、read_query_result() — 查询结果返回是调用的函数,可以进行结果集的修改、删除、过滤等。
所以当我们想对连接数据库的sql语句进行过滤操作可以在read_query()进行触发
详细文档参考:http://downloads.mysql.com/docs/mysql-proxy-en.pdf
其他函数:
init(), connect_server(), read_handshake(), send_handshake(),
read_auth(), send_auth(), read_auth_result(), send_auth_result(),
read_query(), read_query_result(), send_query_result(), cleanup()