MySQL Proxy應用入門(2)--MySQL Proxy配置選項

junsansi發表於2011-03-04

二、MySQL Proxy配置選項

  啟動MySQL Proxy對應的命令列正是mysql-proxy,位於安裝路徑/bin目錄下,mysql-proxy命令列也提供了一些引數,用來實現不同的功能,在啟動MySQL Proxy前必須對部分引數進行設定,比如監控伺服器地址,名稱,埠等。

  直接執行mysql-proxy命令,附加--help-all引數,可以檢視到該命令支援的所有引數,及呼叫語法:

    [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= listening address:port of the admin-server (default: :4041)

    --admin-username= username to allow to log in

    --admin-password= password to allow to log in

    --admin-lua-script= script. to execute by the admin plugin

    proxy-module

    -P, --proxy-address= listening address:port of the proxy-server (default: :4040)

    -r, --proxy-read-only-backend-addresses= address:port of the remote slave-server (default: not set)

    -b, --proxy-backend-addresses= address:port of the remote backend-servers (default: 127.0.0.1:3306)

    --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= filename of the lua script. (default: not set)

    --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= configuration file

    --verbose-shutdown Always log the exit code when shutting down

    --daemon Start in daemon-mode

    --user= Run mysql-proxy as user

    --basedir= Base directory to prepend to relative paths in the config

    --pid-file= PID file in case we are started as daemon

    --plugin-dir= path to the plugins

    --plugins= plugins to load

    --log-level=(error|warning|info|message|debug) log all messages of level ... or higher

    --log-file= log all messages in a 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

從語法可以看得出來,基本上該命令列的使用是非常簡單的,常規需求僅通過命令列+不同引數的組合即可實現。MySQL Proxy與MySQL系出同門,那麼引數的指定方式自然也很型別,上述命令列中顯示的引數,也可以指定在配置檔案中,這個配置檔案與mysql的my.cnf很類似,甚至完全可以將引數就放在my.cnf中,在呼叫mysql-proxy命令時通過--defaults-file指定引數檔案,引數檔案中引數配置規則也與mysql相同,例如:

    [mysql-proxy]

    admin-address = host:port

    admin-user = root

    admin-pass = verysafe

    ..........

最上方的[mysql-proxy]標識引數的作用域,引數檔案中指定引數不需要加--字首。

下面就各個引數的不同意義來逐個說明,mysql-proxy支援的引數可以分成四類:

2.1 幫助相關引數

與幫助相關的引數共有四個:

  • --help:顯示常用的幫助選項;
  • --help-all:顯示全部幫助選項;
  • --help-admin:顯示管理模組的幫助選項;
  • --help-proxy:顯示代理模組的幫助選項;

2.2 管理相關引數

  • --admin-address=host:port:指定管理員主機及服務埠,預設值為localhost:4041。
  • --admin-lua-script=script_file:指定管理模組的lua指令碼檔案。
  • --admin-username=user:指定登入到mysql-proxy管理介面的使用者名稱。
  • --admin-password=pass:指定登入到mysql-proxy管理介面的使用者密碼。

2.3 代理相關引數

  • --proxy-address=host:port:簡寫形式-P

指定監聽服務的主機名(或IP地址)及服務埠,預設埠號為4040。

  • --proxy-backend-addresses=host:port,簡寫形式-b

指定監聽的主機名(或IP地址)及埠,指定的主機為代理實現連線的MySQL伺服器。可以通過本引數同時指定多個伺服器的方式,實現mysql的負載輪循。如果監聽的mysql服務有多個,MySQL代理會自動按照迴圈方式分配客戶端連線到後臺的mysql服務中。比如說當前設定了a和b兩項mysql服務,當第一個客戶端發起連線請求時,會連線到服務a,第二個連線請求則連線到服務b,而第三個連線請求又連線服務a,以此迴圈。

需要注意本引數在命令列與引數檔案中使用是稍有差異,主要表現中同時指定多個服務的情況下。

當使用命令列模式呼叫本引數時,引數後只能跟一個服務,如果要代理的服務有多個,那麼必須同時指定多個引數,比如說:

# mysql-proxy --proxy-backend-addresses 192.168.0.1:3306 --proxy-backend-addresses 192.168.0.2:3306

如果是使用配置檔案指定本引數的話,就可以在一個引數中指定多個值了,引數值之間以,(逗號)分隔即可,例如:

proxy-backend-addresses = 192.168.0.1:3306, 192.168.0.2:3306

  • --proxy-read-only-backend-addresses=host:port:簡寫形式-r

指定監聽的主機名(或IP地址)及埠,該伺服器將僅用於提供只讀服務。

    注意:

    只有當伺服器對應的內部結構(詳見proxy.global.backends)進行了相關配置,可以通過檢查backend的type列確定其連線的型別時,設定本引數才有效。因此,本選項僅適用於指定lua指令碼檔案,允許使用不同backend型別的情況。
  • --proxy-lua-script=filename:簡寫形式-s

指定載入的lua指令碼檔案路徑,注意這個指令碼檔案並非mysql-proxy啟動時即載入和解析,而是直到第一個連線建立時才解析,而後每次連線均會重新載入,也就是說在mysql-proxy執行期間可以動態修改lua的指令碼檔案,儲存後會在下次連線建立時即時生效。

  • --proxy-pool-no-change-user

當從連線池(proxy-backend-addresses列表)中再次獲取連線時,禁止呼叫MySQL CHANGE_USER介面。預設情況下允許。

  • --proxy-fix-bug-25371

修復bug#25371 (mysqld > 5.1.12)的舊libmysql問題。

  • --proxy-skip-profiling

禁止分析查詢(跟蹤時間統計資訊),預設情況下允許。

  • --no-proxy:禁用代理模組。

2.4 呼叫相關的引數

  • --basedir:指定mysql-proxy程式執行的基礎目錄,本引數指定的路徑必須是絕對路徑,如果指定相對路徑的話,mysql-proxy執行時會丟擲異常資訊。
  • --daemon:以守護程式模式執行。
  • --defaults-file:指定引數檔案路徑,如果不指定本引數,則表示引數由命令列執行時指定。
  • --event-threads:指定事件處理的執行緒數,預設為1。
  • --keepalive:建立一個守護程式,當發現mysql-proxy程式崩潰則自動重新啟動,windows平臺下該引數無效。
  • --log-backtrace-on-crash:當mysql-proxy程式崩潰時呼叫debug生成跟蹤資訊。
  • --log-file:指定日誌檔案,記錄mysql-proxy執行過程中的資訊。
  • --log-level:日誌記錄級別,有error/warning/info/message/debug幾種選擇。
  • --log-use-syslog:記錄mysql-proxy錯誤日誌到系統日誌中,僅用於linux/unix平臺。
  • --lua-cpah:設定LUA_CPATH環境變數
  • --lua-path:設定LUA_PATH環境變數
  • --max-open-files:指定mysql-proxy最大能開啟的檔案數
  • --pid-file:指定儲存pid資訊的檔案(僅用於守護模式)
  • --plugin-dir:指定外掛所在路徑;
  • --plugins:指定載入的外掛;
  • --user:指定執行mysql-proxy的使用者。
  • --version:簡寫形式-V,顯示mysql-proxy的版本資訊。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7607759/viewspace-688420/,如需轉載,請註明出處,否則將追究法律責任。

相關文章