现在的位置: 首页 > IT运维 > 正文

MySQL Proxy的使用

2010年07月12日 IT运维 ⁄ 共 1240字 暂无评论 ⁄ 被围观 0+

分析下mysql-proxy使用的具体函数

1)connect_server()

该函数,决定mysql连接的后端server,当有client连接时候,第一个触发该函数

2)read_handshake()

在client connect后,server 返回的handshake信息,如果要显示及控制返回的handshake信息,需在此函数控制

3)read_auth()

read_handshake()触发后,立即触发read_auth(),用官方的话说就是:The read_auth()function is triggered when an authentication handshake is initiated by theclient. In the execution sequence, read_auth()occurs immediately after read_handshake(),so the server selection has already been made, but the connection andauthorization information has not yet been provided to the backend server

4)read_auth_result()

捕获Server对于认证的反馈信息,并可以通过自己意思来修改这些信息,例如:认证通过返回什么给客户端

5)read_query()

每次提交query时,都会触发该函数,所有的一切关于query的控制都在此函数中,例如:可以控制query的发送方向、是否修改query、是否添加query等

6)read_query_result()

当你需要修改query时,你必须手动维护一个队列,里面包含新添加的query,并且每个query都会有一个ID。当mysql-proxy发现有语句有队列时,他会触发该函数,没有队列,则不会调用该函数,该函数是控制队列里query的结果的显示情况

7) disconnect_client()

这个函数在官网中貌似并没有介绍,他主要是当client断开时触发的,主要应该是断开server需要进行的操作(我主要用在维护pool上)。

在现实中,可以通过以上函数,来编写出适合大家的mysql代理层

使用:

我是这样使用的:

/usr/bin/mysql-proxy -b 10.50.21.130:3306 -r 10.0.0.3:3308 --proxy-lua-script=/home/yangting/lua-proxy/rw-splitting-yt.lua --pid-file=/var/run/mysql-proxy.pid--log-level=message --daemon --keepalive --log-file=/var/log/mysql-proxy.log
http://dev.mysql.com/doc/refman/5.1/en/mysql-proxy-using.html

给我留言

您必须 [ 登录 ] 才能发表留言!

×
#