MySQL Router 9.0  /  組態設定  /  組態檔語法

4.1 組態檔語法

組態檔格式類似傳統的 INI 檔案格式,包含章節和選項,但有一些額外的擴充功能。

注意

同時支援正斜線和反斜線。反斜線會無條件複製,因為它們不會跳脫字元。

註解

組態檔可以包含註解行。註解行以井字號 (#) 或分號 (;) 開頭,並延伸到行尾。不支援尾隨註解。

章節

每個組態檔都包含一個組態章節列表,其中每個章節都包含一連串的組態選項。每個組態選項都有一個名稱和一個值。例如

[section name]
option = value
option = value
option = value

[section name:optional section key]

option = value
option = value
option = value

組態檔的章節標頭以左方括號 ([) 開頭,並以右方括號 (]) 結尾。行上可以有前導和尾隨空格字元,這些字元會被忽略,但章節括號內不能有空格。

括號內的章節標頭包含章節名稱和一個選用的章節金鑰,該金鑰以冒號 (:) 與章節標頭分隔。章節名稱和章節金鑰的組合對於組態來說是唯一的。

章節名稱和章節金鑰由一或多個字母、數字或底線 (_) 的序列組成。章節名稱或章節金鑰中不允許使用其他字元。

章節類似於命名空間。例如,user 選項的含義取決於其關聯的章節。在[DEFAULT]章節中的user是指執行 MySQL Router 的系統使用者,這也由 --user 命令列選項控制。與此無關的是在[metadata_cache]章節中定義的user,它是指存取 MySQL 伺服器中繼資料的 MySQL 使用者。

預設章節

特殊章節名稱 DEFAULT (不區分大小寫) 用於選項的預設值。在章節中找不到的選項會在預設章節中查找。預設章節不接受章節金鑰。

選項

在章節的起始標頭之後,可以有一連串零或多個選項行,其中每個選項行都具有以下形式

name = value

在處理之前,會移除選項名稱或選項值上的任何前導或尾隨空白字元。選項名稱不區分大小寫。不支援尾隨註解,因此在此範例中,選項 routing_strategy 的值為 round-robin # Circles back to first server,並在啟動路由器時產生錯誤。

[routing:round-robin]
# Trailing comments are not supported so the following is incorrect
routing_strategy=round-robin # Circles back to first server

變數插補

選項值支援使用大括號 {} 內給定的選項名稱 (變數插補)。插補是在擷取選項值時執行,而不是在從組態檔讀取選項值時執行。如果未定義變數,則不會進行替換,並且會逐字讀取選項值。

請考慮以下組態檔範例

[DEFAULT]
prefix = /usr/

[sample]
bin = {prefix}bin/{name}
lib = {prefix}lib/{name}
name = magic
directory = C:\foo\bar\{3a339172-6898-11e6-8540-9f7b235afb23}

在這裡,bin 的值為 "/usr/bin/magic",lib 的值為 "/usr/lib/magic",而 directory 的值為 "C:\foo\bar\{3a339172-6898-11e6-8540-9f7b235afb23}",因為未定義名為 "{3a339172-6898-11e6-8540-9f7b235afb23}" 的變數。

預定義的變數

MySQL Router 定義了組態檔可用的預定義變數。變數使用大括號,例如預定義變數 program{program}

表 4.1 預定義的變數

名稱 描述
program 程式的名稱,通常為 mysqlrouter
origin 二進位檔案所在目錄的路徑
logging_folder 記錄檔資料夾的路徑
plugin_folder 外掛程式資料夾的路徑
runtime_folder 執行階段資料資料夾的路徑
config_folder 組態檔資料夾的路徑

與命令列相關的詳細資訊

如需與命令列語法相關的資訊和選項,請參閱章節 4.3.1,「使用命令列定義選項」