mysql-proxy 的 administration 接口可以通过任何 mysql 客户端按照标准协议进行访问。你可以通过 administration 接口获取 proxy 服务器的整体信息 - 向 proxy 建立的标准连接是处于隔离状态的,其模拟了直接连接到后端 mysql 服务器的情形。
在 mysql-proxy 0.8.0 或者更早的版本中,一组最基本的接口已被添加到 proxy 中。在后续版本中,这种方式已被替换,你必须要使用的 administration 脚本以连接到 administration 接口。
为了使用 administration 接口,需要通过 --admin-username 和 --admin-password 选项指定连接 admin 服务器所需的用户名和密码。同样必须通过 admin-lua-script 脚本选项指定提供访问 administration 服务所需接口的 lua 脚本。
例如,你可以使用下面的脚本创建一个访问 mysql-proxy 系统内部组件基本接口,由 diego medina 提供:
上述脚本需要配合下面的 proxy 脚本一起使用,名字为 reporter.lua :
为了使用上述脚本,首先需要将第一个脚本保存为文件(在下面的例子中文件名为 admin.lua ),第二个命名为 reporter.lua ,然后通过命令指定 mysql-proxy 执行的 admin 脚本和后端 mysql 服务器:
<a href="http://my.oschina.net/moooofly/blog/111776#">?</a>
1
2
<code>shell> mysql-proxy --admin-lua-script=admin.lua --admin-password=password \ »</code>
<code> </code><code>--admin-username=root --proxy-backend-addresses=127.0.0.1:3306 -proxy-lua-script=reporter.lua</code>
在另外一个窗口中,通过 proxy 连接 mysql 服务器:
3
4
5
6
7
8
9
10
<code>shell> mysql --user=root --password=password --port=4040</code>
<code>welcome to the mysql monitor. commands end with ; or \g.</code>
<code>your mysql connection</code><code>id</code> <code>is 1798669</code>
<code>server version: 5.0.70-log gentoo linux mysql-5.0.70-r1</code>
<code>type</code><code>'help;'</code> <code>or</code><code>'\h'</code> <code>for</code> <code>help. type</code><code>'\c'</code> <code>to</code><code>clear</code> <code>the buffer.</code>
<code>mysql></code>
在第三个窗口中,使用指定的用户名和密码连接 mysql-proxy 的 admin 服务:
<code>shell> mysql --user=root --password=password --port=4041 --host=localhost</code>
<code>your mysql connection</code><code>id</code> <code>is 1</code>
<code>server version: 5.0.99-agent-admin</code>
为了监视 proxy 的状态信息,可以请求当前活动进行的列表信息:
<code>mysql> show proxy processlist;</code>
<code>+</code><code>---------+---------------------+--------------------------+</code>
<code>| id | ip address |</code><code>time</code> <code>|</code>
<code>| 1798669 | 192.168.0.112:52592 | wed jan 20 16:58:00 2010 |</code>
<code>1 row</code><code>in</code> <code>set</code> <code>(0.00 sec)</code>