啟動MySQL Proxy對應的命令行正是mysql-proxy,位于安裝路徑/bin目錄下,mysql-proxy命令行也提供了一些參數(shù),用來實現(xiàn)不同的功能,在啟動MySQL Proxy前必須對部分參數(shù)進行設(shè)置,比如監(jiān)控服務器地址,名稱,端口等。
直接執(zhí)行mysql-proxy命令,附加--help-all參數(shù),可以查看到該命令支持的所有參數(shù),及調(diào)用語法:
[root@rhel5u3 ~]# /usr/local/mysql-proxy/bin/mysql-proxy --help-all
Usage:
mysql-proxy [OPTION...] - MySQL Proxy
Help Options:
-h, --help Show help options
--help-all Show all help options
--help-admin Show options for the admin-module
--help-proxy Show options for the proxy-module
admin-module
--admin-address=
--admin-username=
--admin-password=
--admin-lua-script=
proxy-module
-P, --proxy-address=
-r, --proxy-read-only-backend-addresses=
-b, --proxy-backend-addresses=
--proxy-skip-profiling disables profiling of queries (default: enabled)
--proxy-fix-bug-25371 fix bug #25371 (mysqld > 5.1.12) for older libmysql versions
-s, --proxy-lua-script=
--no-proxy don¨t start the proxy-module (default: enabled)
--proxy-pool-no-change-user don¨t use CHANGE_USER to reset the connection coming from the pool (default: enabled)
Application Options:
-V, --version Show version
--defaults-file=
--verbose-shutdown Always log the exit code when shutting down
--daemon Start in daemon-mode
--user=
--basedir=
--pid-file=
--plugin-dir=
--plugins=
--log-level=(error|warning|info|message|debug) log all messages of level ... or higher
--log-file=
--log-use-syslog log all messages to syslog
--log-backtrace-on-crash try to invoke debugger on crash
--keepalive try to restart the proxy if it crashed
--max-open-files maximum number of open files (ulimit -n)
--event-threads number of event-handling threads (default: 1)
--lua-path=<...> set the LUA_PATH
--lua-cpath=<...> set the LUA_CPATH從語法可以看得出來,基本上該命令行的使用是非常簡單的,常規(guī)需求僅通過命令行+不同參數(shù)的組合即可實現(xiàn)。MySQL Proxy與MySQL系出同門,那么參數(shù)的指定方式自然也很類型,上述命令行中顯示的參數(shù),也可以指定在配置文件中,這個配置文件與mysql的my.cnf很類似,甚至完全可以將參數(shù)就放在my.cnf中,在調(diào)用mysql-proxy命令時通過--defaults-file指定參數(shù)文件,參數(shù)文件中參數(shù)配置規(guī)則也與mysql相同,例如:
[mysql-proxy]
admin-address = host:port
admin-user = root
admin-pass = verysafe
..........最上方的[mysql-proxy]標識參數(shù)的作用域,參數(shù)文件中指定參數(shù)不需要加--前綴。
下面就各個參數(shù)的不同意義來逐個說明,mysql-proxy支持的參數(shù)可以分成四類:
與幫助相關(guān)的參數(shù)共有四個:
指定監(jiān)聽服務的主機名(或IP地址)及服務端口,默認端口號為4040。
指定監(jiān)聽的主機名(或IP地址)及端口,指定的主機為代理實現(xiàn)連接的MySQL服務器??梢酝ㄟ^本參數(shù)同時指定多個服務器的方式,實現(xiàn)mysql的負載輪循。如果監(jiān)聽的mysql服務有多個,MySQL代理會自動按照循環(huán)方式分配客戶端連接到后臺的mysql服務中。比如說當前設(shè)置了a和b兩項mysql服務,當?shù)谝粋€客戶端發(fā)起連接請求時,會連接到服務a,第二個連接請求則連接到服務b,而第三個連接請求又連接服務a,以此循環(huán)。
需要注意本參數(shù)在命令行與參數(shù)文件中使用是稍有差異,主要表現(xiàn)中同時指定多個服務的情況下。
當使用命令行模式調(diào)用本參數(shù)時,參數(shù)后只能跟一個服務,如果要代理的服務有多個,那么必須同時指定多個參數(shù),比如說:
# mysql-proxy --proxy-backend-addresses 192.168.0.1:3306 --proxy-backend-addresses 192.168.0.2:3306
如果是使用配置文件指定本參數(shù)的話,就可以在一個參數(shù)中指定多個值了,參數(shù)值之間以,(逗號)分隔即可,例如:
proxy-backend-addresses = 192.168.0.1:3306, 192.168.0.2:3306
指定監(jiān)聽的主機名(或IP地址)及端口,該服務器將僅用于提供只讀服務。
注意:
只有當服務器對應的內(nèi)部結(jié)構(gòu)(詳見proxy.global.backends)進行了相關(guān)配置,可以通過檢查backend的type列確定其連接的類型時,設(shè)置本參數(shù)才有效。因此,本選項僅適用于指定lua腳本文件,允許使用不同backend類型的情況。指定加載的lua腳本文件路徑,注意這個腳本文件并非mysql-proxy啟動時即加載和解析,而是直到第一個連接創(chuàng)建時才解析,而后每次連接均會重新加載,也就是說在mysql-proxy運行期間可以動態(tài)修改lua的腳本文件,保存后會在下次連接創(chuàng)建時即時生效。
當從連接池(proxy-backend-addresses列表)中再次獲取連接時,禁止調(diào)用MySQL CHANGE_USER接口。默認情況下允許。
修復bug#25371 (mysqld > 5.1.12)的舊libmysql問題。
禁止分析查詢(跟蹤時間統(tǒng)計信息),默認情況下允許。