MySQL Router 8.4  /  組態  /  組態檔語法

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}

表 4.1 預先定義的變數

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

與命令列相關的詳細資訊

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