天天看點

【原創】MySQL Proxy - Administration Interface

       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&gt; 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&gt; 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&gt;</code>

在第三個視窗中,使用指定的使用者名和密碼連接配接 mysql-proxy 的 admin 服務: 

<code>shell&gt; 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&gt; 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>

繼續閱讀