啟動時,MySQL Router 會讀取一組組態檔,這些檔案共同構成路由器的組態。至少需要一個組態檔。
MySQL Router 從組態檔中讀取選項,這些檔案與傳統的 INI 檔案格式非常相似,具有區段和選項。這些選項指定 MySQL Router 啟動時設定的選項。如需檔案語法資訊,請參閱第 4.1 節「組態檔語法」。
選項定義在區段下,這些區段會決定選項的含義。例如,user
在[DEFAULT]區段下是指執行路由器的系統使用者,而user
在[metadata_cache]區段下是指存取元數據的 MySQL 使用者。
下表依區段分隔,並摘要了在 MySQL Router 組態檔中定義的 MySQL Router 選項。關於每個選項的詳細資訊,例如說明和允許的值,記錄在這些表格下方。
一般選項
表 4.7 [DEFAULT]
選項名稱 | 說明 | 類型 |
---|---|---|
config_folder |
組態檔的路徑 | 字串 |
connect_timeout |
連線嘗試連至元數據伺服器時,被視為逾時前的秒數 | 整數 |
core-file |
在 Router 崩潰時寫入核心檔案 | 布林值 |
event_source_name |
僅限 Microsoft Windows 平台。定義當 MySQL Router 在 Microsoft Windows 上以服務執行時所使用的服務名稱。 | 字串 |
keyring_path |
金鑰環檔案的路徑 | 字串 |
logging_folder |
路由器記錄的路徑 | 字串 |
master_key_path |
主金鑰環檔案的路徑 | 字串 |
master-key-reader |
將主金鑰傳回 STDOUT 的指令碼 | 字串 |
master-key-writer |
從 STDIN 讀取主金鑰的指令碼 | 字串 |
max_total_connections |
路由器允許的用戶端連線總數上限 | 整數 |
pid_file |
儲存 PID 檔案的位置 | 字串 |
plugin_folder |
路由器外掛程式的路徑 | 字串 |
runtime_folder |
執行階段檔案的路徑 | 字串 |
sinks |
接收設定的記錄資料的記錄方法 | 字串 |
thread_stack_size |
配置給每個執行緒堆疊的記憶體大小 (KB) | 整數 |
unknown_config_option |
如果遇到不明組態選項時傳送的錯誤類型 | 字串 |
user |
MySQL Router 以其執行的系統使用者 | 字串 |
路由選項
表 4.8 [routing]
選項名稱 | 說明 | 類型 |
---|---|---|
access_mode |
根據交易類別拆分讀取和寫入。 | 字串 |
bind_address |
路由器繫結的位址,如果未定義埠,則也使用 bind_port | 字串 |
bind_port |
bind_address 使用的預設埠 | 整數 |
client_connect_timeout |
從 MySQL 伺服器接收封包的最長秒數 | 整數 |
client_ssl_ca |
PEM 格式的憑證授權單位 (CA) 憑證檔案的路徑 | 字串 |
client_ssl_capath |
包含 PEM 格式的信任 SSL 憑證授權單位 (CA) 憑證檔案的目錄路徑。 | 字串 |
client_ssl_cert |
用於加密用戶端到路由器通訊的 SSL 憑證 (PEM) 路徑 | 字串 |
client_ssl_cipher |
允許在用戶端和 MySQL Router 之間使用的密碼,預設為安全的 SSL 密碼清單 | 字串 |
client_ssl_crl |
包含 PEM 格式的憑證撤銷清單的檔案路徑 | 字串 |
client_ssl_crlpath |
包含 PEM 格式的憑證撤銷清單檔案的目錄路徑 | 字串 |
client_ssl_curves |
允許在用戶端和 MySQL Router 之間使用的曲線,預設為安全的 SSL 曲線清單 | 字串 |
client_ssl_dh_params |
DH 參數檔案的檔案名稱。預設不設定 | 字串 |
client_ssl_key |
用於加密用戶端到路由器通訊的 SSL 私密金鑰憑證檔案 (PEM) 路徑 | 字串 |
client_ssl_mode |
控制從用戶端到 MySQL Router 的連線是否必須加密,如果未設定,預設為 PREFERRED | 字串 |
client_ssl_session_cache_mode |
啟用或停用用戶端連線的 TLS 工作階段快取 | 布林值 |
client_ssl_session_cache_size |
用戶端連線的 TLS 工作階段快取中的項目數量 | 整數 |
client_ssl_session_cache_timeout |
從用戶端 TLS 工作階段快取中移除 TLS 工作階段前的秒數 | 整數 |
connect_retry_timeout |
MySQL Router 在重試連線至後端之前等待的秒數 | 整數 |
connect_timeout |
連線嘗試連至 MySQL 伺服器時,被視為逾時前的秒數 | 整數 |
connection_sharing |
是否啟用連線共用。 | 整數 |
connection_sharing_delay |
將閒置連線移至連線池之前等待的秒數。 | 數值 |
destinations |
將路由目的地作為以逗號分隔的 MySQL 伺服器清單,或元數據快取定義 | 字串 |
dynamic_state |
用於追蹤和儲存活動 MySQL InnoDB 叢集元數據伺服器位址的產生 JSON 檔案路徑 | 字串 |
max_connect_errors |
放棄前失敗的 MySQL 伺服器連線數上限 | 整數 |
max_connections |
指派給路由目的地 MySQL 伺服器的連線數上限 | 整數 |
net_buffer_length |
設定 net_buffer_length | 整數 |
protocol |
連線至 MySQL 伺服器的協定 | 字串 |
read_timeout |
讀取操作連至元數據伺服器時,被視為逾時前的秒數 | 整數 |
router_require_enforce |
如果啟用,則擷取目前使用者的屬性並強制執行 | 布林值 |
routing_strategy |
路由策略 (選用),路由器如何選擇目的地 MySQL 伺服器 | 字串 |
server_ssl_ca |
PEM 格式的憑證授權單位 (CA) 憑證檔案的路徑 | 字串 |
server_ssl_capath |
包含 PEM 格式的信任 SSL 憑證授權單位 (CA) 憑證檔案的目錄路徑。 | 字串 |
server_ssl_cert |
用於加密路由器到伺服器通訊的 SSL 憑證 (PEM) 路徑 | 字串 |
server_ssl_cipher |
伺服器的 SSL 密碼 | 字串 |
server_ssl_crl |
包含 PEM 格式的憑證撤銷清單的檔案路徑 | 字串 |
server_ssl_crlpath |
包含 PEM 格式的憑證撤銷清單檔案的目錄路徑 | 字串 |
server_ssl_curves |
伺服器的 SSL 曲線 | 字串 |
server_ssl_key |
用於加密路由器到伺服器通訊的 SSL 私密金鑰憑證檔案 (PEM) 路徑 | 字串 |
server_ssl_mode |
控制從路由器到伺服器的連線是否必須加密 | 字串 |
server_ssl_session_cache_mode |
啟用或停用伺服器連線的 TLS 工作階段快取 | 布林值 |
server_ssl_session_cache_size |
伺服器連線的 TLS 工作階段快取中的項目數量 | 整數 |
server_ssl_session_cache_timeout |
從伺服器 TLS 工作階段快取中移除 TLS 工作階段前的秒數 | 整數 |
server_ssl_verify |
驗證伺服器呈現給路由器的 SSL 憑證 | 字串 |
socket |
Unix 網域通訊端檔案的路徑 | 字串 |
wait_for_my_writes |
唯讀查詢會等待上次寫入的交易。 | 整數 |
wait_for_my_writes_timeout |
唯讀目的地套用寫入交易前等待的最長時間 (秒),然後才回退至讀寫目的地。 | 整數 |
目的地狀態選項
表 4.9 [destination_status]
選項名稱 | 說明 | 類型 |
---|---|---|
error_quarantine_interval |
定義檢查隔離目標連線之間隔時間,以秒為單位。如果可以連線,目標會移出隔離區並可用於連線。 | 整數 |
error_quarantine_threshold |
定義在 MySQL Router 將路由目標加入隔離區並停止使用它作為目標之前,連線至路由目標的連續失敗嘗試次數的閾值,直到隔離機制清除該目標。例如,如果設定為 5,則在連續 5 次連線嘗試失敗後,目標會被隔離。 | 整數 |
表格 4.10 [connection_pool]
選項名稱 | 說明 | 類型 |
---|---|---|
idle_timeout |
在關閉閒置連線之前,將其保留在連線集區中的秒數 | 數值 |
max_idle_server_connections |
用戶端斷開連線後保持開啟的連線數 | 數值 |
中繼資料快取選項
表格 4.11 [metadata_cache]
選項名稱 | 說明 | 類型 |
---|---|---|
auth_cache_refresh_interval |
嘗試重新整理授權快取的時間間隔 | 數值 |
auth_cache_ttl |
如果未重新整理,快取失效的時間 | 數值 |
cluster_type |
Object Router 啟動時所針對的類型 | 字串 |
metadata_cluster |
InnoDB 叢集名稱 | 字串 |
router_id |
路由器 ID | 整數 |
ssl_ca |
用於驗證伺服器憑證的 SSL CA 檔案 | 字串 |
ssl_capath |
包含用於驗證伺服器憑證的 SSL CA 檔案的目錄 | 字串 |
ssl_crl |
用於驗證伺服器憑證的 SSL CRL 檔案 | 字串 |
ssl_crlpath |
包含用於驗證伺服器憑證的 SSL CRL 檔案的目錄 | 字串 |
ssl_mode |
連線至中繼資料伺服器的 SSL 連線模式,如果未設定,預設為 PREFERRED | 字串 |
tls_version |
如果啟用 SSL,要請求的 TLS 版本,以逗號分隔的清單 | 字串 |
ttl |
存活時間,以秒為單位 | 整數 |
use_gr_notifications |
群組複寫通知行為 | 整數 |
user |
存取 MySQL 伺服器中繼資料綱要的 MySQL 使用者 | 字串 |
記錄選項
表格 4.12 [logger]
選項名稱 | 說明 | 類型 |
---|---|---|
destination |
要記錄的裝置名稱;可選用 [consolelog]。 | 字串 |
filename |
記錄檔名稱;可選用 [logger] 和 [filelog]。 | 字串 |
level |
記錄層級 | 字串 |
timestamp_precision |
記錄器時間戳記精確度 | 字串 |
HTTP 伺服器選項
表格 4.13 [http_server]
選項名稱 | 說明 | 類型 |
---|---|---|
bind_address |
繫結至 HTTP 連接埠的 IP 位址 | 字串 |
port |
HTTP 伺服器 TCP 連接埠 | 整數 |
require_realm |
[http_auth_realm] 名稱 | 字串 |
ssl_cert |
SSL 憑證檔名 | 字串 |
ssl_cipher |
核准的 SSL 加密演算法 | 字串 |
ssl_dh_param |
DH 參數檔名 | 字串 |
ssl |
啟用 TLSv1.2 或更新版本支援 | 整數 |
ssl_key |
SSL 金鑰檔名 | 字串 |
static_folder |
HTTP 伺服器靜態檔案請求的目錄 | 字串 |
MySQL Router 組態檔選項說明
-
類型 字串 預設值 有效值 auto
定義 MySQL Router 如何處理唯讀和讀寫查詢。如果啟用,唯讀查詢會導向唯讀伺服器,讀寫查詢會導向讀寫伺服器。請參閱 章節 3.5,「讀/寫分割」。
-
類型 整數 預設值 1
最小值 0
最大值 1
唯讀查詢會等待上次寫入的交易。
請參閱 章節 3.5,「讀/寫分割」。
-
類型 整數 預設值 1
最小值 0
最大值 4294967295
唯讀目的地套用寫入交易前等待的最長時間 (秒),然後才回退至讀寫目的地。
請參閱 章節 3.5,「讀/寫分割」。
-
類型 布林值 預設值 0
如果啟用,MySQL Router 會在使用者
USER_ATTRIBUTES
表格中擷取使用者router_requires
屬性中定義的值。該屬性必須採用下列格式
{router_require: {value}}
以下是可能的值
{}
:無需求。{ssl: true}
:MySQL Router 要求來自用戶端的 SSL。{x509: true}
:MySQL Router 要求來自用戶端的 SSL 和 x509 憑證。{issuer: ""}
:MySQL Router 要求來自用戶端的 SSL、x509 憑證和憑證簽發者。{ssl: true}
:MySQL Router 要求來自用戶端的 SSL、x509 憑證和憑證主旨。
-
命令列格式 --core-file[={0|1}]
類型 布林值 預設值 0
如果 mysqlrouter 停止運作,則寫入核心檔案。核心檔案的名稱和位置取決於系統。在 Linux 上,名為
core.
的核心檔案會寫入處理程序的目前工作目錄。pid
pid
代表伺服器處理程序的處理程序 ID。在 macOS 上,如果處理程序具有com.apple.security.get-task-allow
權限,則名為core.
的核心檔案會寫入pid
/cores
目錄。在 Solaris 上,請使用 coreadm 命令指定要將核心檔案寫入何處以及如何命名。在 Windows 上,名為mysqlrouter.
的迷你傾印檔案會寫入處理程序的目前工作目錄。{pid}
.dmp -
類型 字串 預設值 僅限 Microsoft Windows 平台。定義在 Microsoft Windows 上以服務形式執行時,MySQL Router 使用的服務名稱。這可讓您在執行多個 MySQL Router 執行個體之間,以及它們在事件記錄檔中的訊息之間進行區分。
例如
[DEFAULT] event_source_name = MySQLRouterService
-
類型 字串 預設值 $router_basepath
MySQL Router 記錄檔目錄的路徑。記錄檔名為
mysqlrouter.log
,如果此檔案已存在,則會產生或附加至此檔案。將
logging_folder
設定為空值會將訊息傳送至主控台 (stdout)。注意預設的
logging_folder
值在 MySQL Router 2.1 中從 "" 變更為 Router 的基本路徑。一個將記錄傳送至
/var/log/mysqlrouter/mysqlrouter.log
的範例[DEFAULT] logging_folder = /var/log/mysqlrouter
當使用
--directory
啟動選項時,產生的組態檔會將其設定為 $directory/log/。 -
類型 字串 預設值 (Windows) 預設值 (其他) /usr/local/lib/mysqlrouter
MySQL Router 外掛程式的路徑。此資料夾必須與 MySQL Router 安裝目錄相符。只有在您有自訂安裝,而外掛程式不在標準安裝位置時,才應設定此選項。
預設值:
/usr/local/lib/mysqlrouter
-
類型 字串 預設值 (Windows) 預設值 (其他) /run/mysqlrouter
MySQL Router 執行階段檔案的路徑。
預設值:
/run/mysqlrouter
-
命令列格式 --master-key-writer file_path
類型 字串 從 STDIN 讀取主金鑰的指令碼。使用
--master-key-writer
命令列啟動選項設定。 -
命令列格式 --master-key-reader file_path
類型 字串 將主金鑰傳回 STDOUT 的指令碼。使用
--master-key-reader
命令列啟動選項設定。 -
類型 字串 預設值 (Windows) 預設值 (其他) /usr/local/etc/mysqlrouter
MySQL Router 組態檔的路徑。
注意config_folder
目前在編譯時設定。此選項未來可能會被外掛程式使用,當它們擁有自己的組態檔時。預設值:
/usr/local/etc/mysqlrouter
-
類型 字串 有效值 (Windows) consolelog
filelog
eventlog
有效值 (其他) consolelog
filelog
syslog
定義的記錄層級要傳送到的接收器(不同記錄方法)。
支援的接收器值為:
consolelog
、filelog
、eventlog
(在 Windows 上) 和syslog
(在以 Unix 為基礎的系統上)。使用以逗號分隔的清單來定義多個值。預設值:如果 "[DEFAULT]" 區段中的
logging_folder
選項不為空,則為filelog
,否則為consolelog
。例如,若要設定記錄器以使用檔案、主控台和事件記錄檔,每個都使用在 [logger] 區段中設定的偵錯記錄層級
[logger] level=debug sinks=consolelog,eventlog,filelog
-
類型 字串 預設值 (Windows) %PROGRAMDATA%\MySQL\MySQL Router\keyring-data
預設值 (其他) /run/mysql-router/keyring-data
指向金鑰環檔案的位置。
系統範圍的引導程序不會將此選項新增至產生的組態檔,並假設金鑰環檔案位於系統範圍的執行階段狀態目錄中。如果同時使用
--directory
,則金鑰環檔案會儲存在該執行個體的執行階段狀態目錄下,位於指定目錄的run/
下。如果未定義此選項,則會使用系統範圍的預設路徑。
使用範例
keyring_path = /opt/myrouter/data/keyring master_key_path = /opt/myrouter/mysqlrouter.key
-
類型 字串 預設值 (Windows) %PROGRAMDATA%\MySQL\MySQL Router\mysqlrouter.key
預設值 (其他) /run/mysql-router/mysqlrouter.key
主金鑰檔案的位置。此選項允許自動解密,否則會在啟動時要求其位置。
如果未指定此選項,則會使用系統範圍的預設路徑。
使用範例
keyring_path = /opt/myrouter/data/keyring master_key_path = /opt/myrouter/mysqlrouter.key
-
類型 字串 預設值 warning
有效值 warning
error
決定 MySQL Router 處理未知組態選項 (例如錯字) 的行為。
warning 是預設行為,而引導程序會在產生的組態檔中將其定義為 error。Warning 會記錄警告訊息但不停止,而 error 則表示 MySQL Router 無法初始化並結束。
[DEFAULT] unknown_config_option=warning
-
類型 字串 以名稱為
user_name
或數值使用者 IDuser_id
的使用者身分執行 mysqlrouter。「使用者」在此上下文中是指系統登入帳戶,而非授權表格中列出的 MySQL 使用者。也可以使用--user
命令列選項在執行階段指派。在 Linux 上,使用官方 DEB 或 RPM 套件安裝 Router 會在主機上建立名為 "mysqlrouter" 的本機系統使用者和群組,而 MySQL Router 預設會以此使用者身分執行。此帳戶沒有 shell 存取權,其主目錄指向儲存預設組態檔的目錄。
此選項的目的是以具有受限系統權限的使用者身分執行 MySQL Router。如果系統上不存在使用者,或嘗試以 root 身分啟動 Router,則會發出錯誤訊息且 Router 會結束。
MySQL Router 可以在任何作業系統使用者下進行引導和執行,除了對其自己的檔案具有讀取和寫入存取權之外,不需要特殊權限。它存取的檔案包括外掛程式 (讀取/執行)、組態檔、記錄、UNIX 網域 Socket 檔案 (如果已啟用) 等。
預設情況下,組態和記錄檔會寫入系統範圍的位置,例如
/etc
和/var/log
。或者,可以使用--directory
選項將 Router 引導至其自己的獨立目錄。例如$> sudo mysqlrouter --bootstrap localhost:3310 --directory /a/path/myrouter --user snoopy
在此範例中,Router 會建立
/a/path/myrouter
並在此處新增所有產生的檔案和目錄,而且這些檔案和目錄只能由系統使用者snoopy
寫入。此外,user
定義於產生的組態檔/a/path/myrouter/mysqlrouter.conf
中[DEFAULT] user=snoopy
注意這與
[metadata_cache]
區段中定義的user
定義不同,後者為 MySQL 使用者。 -
類型 字串 SSL CA 檔案的路徑,用於驗證連線至中繼資料伺服器時的伺服器憑證。
可以使用
--ssl-ca
引導選項選擇性設定。 -
類型 字串 包含 SSL CA 檔案的目錄路徑,用於驗證連線至中繼資料伺服器時的伺服器憑證。
可以使用
--ssl-capath
引導選項選擇性設定。 -
類型 字串 SSL CRL 檔案的路徑,用於連線至中繼資料伺服器並驗證其 SSL 憑證時。
可以使用
--ssl-crl
引導選項選擇性設定。 -
類型 字串 包含 SSL CRL 檔案的目錄路徑,用於連線至中繼資料伺服器並驗證其 SSL 憑證時。
可以使用
--ssl-crlpath
引導選項選擇性設定。 -
類型 字串 要請求的 TLS 版本清單,以逗號分隔,例如 'TLSv1.2,TLSv1.3' (如果已啟用 SSL)。
可以使用
--tls-version
引導選項選擇性設定。 -
類型 字串 預設值 127.0.0.1
與選用的
bind_address
選項相關的資訊路由項目可以繫結至網路介面 (NIC)。預設的
bind_address
是 127.0.0.1。如果此處未定義連接埠,則必須設定bind_port
。預設情況下,
--bootstrap
會為產生的 Router 組態檔中的每個路由設定bind_address=0.0.0.0
。可以使用--conf-bind-address
變更此值。繫結至特定的 IPv4 或 IPv6 位址可允許並確保 MySQL Router 不會啟動並在不允許執行任何動作的 NIC 上路由服務。
每個路由組態群組無法指定多個繫結位址。但是,使用 0.0.0.0:
$port
(您在其中定義 $port) 會繫結主機上的所有網路介面 (IP)。也可以使用 IPv6 位址。
使用範例
bind_address = 127.0.0.1:7001
注意bind_address
無法在destinations
清單中列出。 -
類型 整數 您可以選擇使用
bind_port
為bind_address
定義預設連接埠。如果未在bind_address
中設定連接埠,則必須使用bind_port
。可以使用
--conf-base-port
引導選項選擇性設定這些值。以下三個範例的結果均為 bind_address = 127.0.0.1:7001
[routing:example_1] bind_port = 7001
[routing:example_2] bind_port = 7001 bind_address = 127.0.0.1
[routing:example_3] bind_address = 127.0.0.1:7001
-
平台特定 Linux 類型 字串 使用
socket
選項啟用 Socket,可以指定或不指定 TCPbind_port
和bind_address
選項。範例[routing] socket = /tmp/mysqlrouter.sock destinations = a.example.com:3306,b.example.com:3307
啟動 MySQL Router 時,如果 Socket 檔案已存在或無法寫入,Router 會拒絕執行。
接受相對路徑,並以啟動 Router 的目前工作目錄為依據。
Router 可以同時接聽 TCP Socket 和 Unix Socket。例如,以下 [routing] 組態範例有效,並將 Router 設定為接聽 localhost:1234 和
/tmp/mysqlrouter.sock
上的連線[routing:my_redirect] bind_address = localhost:1234 socket = /tmp/mysqlrouter.sock destinations = localhost:57121, localhost:57122, localhost:57123
注意Unix 網域 Socket 長度限制是平台特定的,不應超過系統允許的長度。
-
類型 字串 預設值 classic
有效值 classic
x
由路由外掛程式在連線至目標 MySQL 伺服器時使用,並且可以設定為 "classic" (預設) 或 "x" (X Protocol)。
使用範例
[routing:basic_failover] bind_port = 7001 destinations = 10.20.200.1:33060, 10.20.200.2:33060 protocol = x
protocol
選項也會影響每個目的地使用的預設連接埠。如果未設定目的地連接埠,則 "classic" (預設) 的預設連接埠為 3306,而 "x" (X Protocol) 的預設連接埠為 33060。 -
類型 字串 設定 PID 檔案的位置。可以使用三種不同的方式設定 (依優先順序):
--pid-file
命令列選項、在 Router 的組態檔中設定此pid_file
選項,或定義ROUTER_PID
環境變數。如果指定了
--bootstrap
,則會忽略pid_file
和 ROUTER_PID 定義。這與會導致 Router 失敗的--pid-file
命令列選項不同。如果未指定
--bootstrap
,則下列情況會導致 Router 失敗:--pid-file 已存在、已設定 pid_file 或 ROUTER_PID 但為空,或者 Router 無法寫入 PID 檔案。 -
類型 整數 預設值 5
最小值 1
最大值 65536
MySQL Router 連接目標 MySQL 伺服器時使用的逾時值。該值不能無限制,無效的值會導致組態錯誤。有效範圍介於 1 到 65536 之間。您應該將此值保持較低。
使用範例
[routing] connect_timeout = 5
可以使用
--conf-set-option=routing.connect_timeout
在啟動時設定。 -
類型 整數 預設值 5
MySQL Router 連接 MySQL metadata 伺服器時使用的逾時值。
使用範例
[DEFAULT] connect_timeout = 5
可以使用
--connect-timeout
或--conf-set-option=DEFAULT.connect_timeout
在啟動時設定。 -
類型 整數 預設值 30
MySQL Router 從 MySQL metadata 伺服器讀取時使用的逾時值。預設值為 30 秒。
使用範例
[DEFAULT] read_timeout = 30
-
類型 字串 提供用於建立連線的主機資訊。它接受以逗號分隔的目標位址清單,或是指向 InnoDB 叢集的 metadata 快取連結。
使用特定主機的範例用法 (靜態路由)
destinations = a.example.com,b.example.com,c.example.com
使用 InnoDB 叢集 metadata 快取的範例用法
destinations=metadata-cache://mycluster/default?role=PRIMARY
metadata-cache
URI 選項為-
role
:決定連線可用的執行個體類型。可接受的值為 PRIMARY、SECONDARY 或 PRIMARY_AND_SECONDARY。routing_strategy
mysqlrouter.conf
選項定義特定的策略,而預設的 metadata 快取路由策略為 round-robin。 disconnect_on_promoted_to_primary
:控制當次要執行個體升級為主要執行個體時,是否關閉現有的用戶端連線。預設值為「no」,表示升級後不會關閉現有到升級次要執行個體的用戶端連線。在 URI 中設定 disconnect_on_promoted_to_primary=yes 以關閉這些現有連線。disconnect_on_metadata_unavailable
:控制當群組超載時,是否關閉現有的用戶端連線。預設值為「no」,表示當群組超載時,不會關閉現有的用戶端連線。在 URI 中設定 disconnect_on_metadata_unavailable=yes 以關閉這些現有連線。
注意相關地,下列情況會導致中斷連線:在主要執行個體降級為次要執行個體後連線到主要執行個體,以及連線到不再屬於叢集的節點。
-
-
類型 字串 此選項會追蹤並儲存作用中的 MySQL InnoDB 叢集 Metadata 伺服器位址,並在重新啟動 Router 時載入它們。此功能由
--bootstrap
啟用。啟動會在 [DEFAULT] 區段下的
mysqlrouter.conf
檔案中定義dynamic_state
選項。該值是名為state.json
的 JSON 檔案的路徑,該檔案會在啟動 Router 時建立。state.json
會初始化 InnoDB 叢集 Metadata 伺服器位址和群組複寫 ID (InnoDB 叢集傳回的 group_replication_name);在 Router 執行時,會新增和更新其他資訊。mysqlrouter.conf
項目範例[DEFAULT] dynamic_state=/opt/myrouter/data/state.json
由
--bootstrap
產生的state.json
範例{ "metadata-cache": { "group-replication-id": "4b9e817a-0254-11e9-9cc0-080027bb5030", "cluster-metadata-servers": [ "mysql://127.0.0.1:3310", "mysql://127.0.0.1:3320", "mysql://127.0.0.1:3330" ] }, "version": "1.0.0" }
-
類型 字串 有效值 first-available
next-available
round-robin
round-robin-with-fallback
路由策略定義 MySQL Router 如何選擇要連線的 MySQL 伺服器。
可用的策略
注意此章節之後的角色文件說明可用的
role
和routing_strategy
組合及衝突。無法連線的目標會被隔離並跳過,並會每隔
error_quarantine_interval
秒偵測可用性。除了next-available
以外的所有路由策略都會利用此行為。round-robin
:為了負載平衡,每個新連線都會以循環配置方式連線到下一個可用的伺服器。round-robin-with-fallback
:為了負載平衡,每個新連線都會以循環配置方式連線到下一個可用的次要伺服器。如果次要伺服器不可用,則會以循環配置方式使用主要清單中的伺服器。first-available
:新連線會路由到目標清單中第一個可用的伺服器。如果發生失敗,則會使用下一個可用的伺服器。此週期會持續到所有伺服器都不可用為止。-
next-available
:與first-available
類似,新連線會路由到目標清單中第一個可用的伺服器。與first-available
不同的是,如果伺服器標記為無法連線,則會將其捨棄,並且永遠不會再用作目標。限制包括
-
在捨棄選取的所有節點後,就無法將伺服器重新新增到清單中。
與其他策略不同,無法連線的目標不會每隔
error_quarantine_interval
秒偵測可用性。 重新啟動 MySQL Router 後,所有關於哪些伺服器被捨棄的知識都會遺失,並且所有伺服器都會再次可用。
Metadata 快取不支援 next-available 路由原則,因為 next-available 僅適用於靜態路由。
-
role
的預設值和可用組合PRIMARY
:round-robin
是預設行為 (如果未設定 routing_strategy),而啟動會在產生的 MySQL Router 組態檔案中新增routing_strategy=first-available
。可用的策略值為 first-available 和 round-robin。SECONDARY
:round-robin
是預設行為 (如果未設定 routing_strategy),而啟動會在產生的 MySQL Router 組態檔案中新增routing_strategy=round-robin-with-fallback
。可用的策略值為 first-available、round-robin 和 round-robin-with-fallback。PRIMARY_AND_SECONDARY
:round-robin
是預設行為 (如果未設定 routing_strategy)。可用的策略值為 first-available 和 round-robin。
-
類型 整數 預設值 512
最小值 1
最大值 65536
每個路由都可以限制路由或連線的數量。一個可能的用途是協助防止可能發生的阻斷服務 (DOS) 攻擊。預設值為 512,有效範圍介於 1 到 65536 之間。
這類似於 MySQL Server 的 max_connections 伺服器系統變數。
[routing:mycluster_default_rw] max_connections = 512
或者,使用較新的
max_total_connections
組態選項,該選項為所有 Router 區段組合設定一個值。最大值取決於系統的輪詢 (或 linux_epoll) 限制和可用的 CPU 核心/執行緒數。另請參閱 [IO]
backend
和threads
組態選項。選擇性地在
[DEFAULT]
區段中設定max_connections
,會設定每個路由目標的預設值。 -
類型 整數 預設值 512
最小值 1
最大值 9223372036854775807
Router 處理的用戶端連線最大數量,以協助防止耗盡檔案描述元。
這類似於 MySQL Server 的 max_connections 伺服器系統變數。
[DEFAULT] max_total_connections = 512
注意舊版
max_connections
選項會為每個路由執行個體設定一個值,例如,為唯讀設定一個值,為唯寫設定另一個值。max_total_connections
選項會為所有路由執行個體組合設定一個值。預設值為 512,並且設定在
[DEFAULT]
區段下。 -
類型 整數 預設值 64
最小值 1
最大值 65535
為每個執行緒配置的堆疊大小。以 KB 為單位測量,預設為 64。
[DEFAULT] thread_stack_size=128
-
類型 整數 設定
net_buffer_length
MySQL 伺服器選項。 -
類型 整數 預設值 100
最小值 1
最大值 4294967295
預設值為 100,有效範圍介於 1 到 2^32 (4294967295,一個無符號整數) 之間。
這類似於 MySQL Server 的 max_connect_errors 伺服器系統變數。
如果應用程式執行頻繁的重新連線,這可能會導致輕微的效能損失,因為 MySQL Router 會嘗試探索是否存在與連線相關的錯誤。
成功的連線會重設錯誤計數器。
每個路由都有其自己的封鎖主機清單。封鎖的用戶端會收到 MySQL Server 錯誤碼 1129,錯誤訊息略有不同:「1129: Too many connection errors from fail.example.com」。Router 記錄包含封鎖用戶端的額外資訊,例如:INFO [...] 1 authentication errors for fail.example.com (max 100) WARNING [...] blocking client host fail.example.com
max_connect_errors = 100
-
類型 整數 預設值 9
最小值 2
最大值 31536000
這類似於 MySQL Server 的 connect_timeout 伺服器系統變數。
預設值為 9,比 MySQL 5.7 的預設值少 1。有效範圍介於 2 到 31536000 之間。
client_connect_timeout = 9
-
類型 數值 預設值 2
最小值 0.001
最大值 3600
auth-cache 重新整理嘗試之間的時間 (以秒為單位)。預設為 2。該值必須小於
auth_cache_ttl
,並且大於ttl
,否則 Router 將不會啟動。如果 http_auth_backend 區段的
backend
選項設定為 metadata_cache,則會套用此選項;這是 Router REST API 的一項功能。 -
類型 數值 預設值 -1
最小值 0.001
最大值 3600
快取失效(如果未重新整理)前的時間(以秒為單位)。預設值為 -1(無限)。該值必須大於
auth_cache_refresh_interval
和ttl
,否則 Router 將無法啟動。如果 http_auth_backend 區段的
backend
選項設定為 metadata_cache,則會套用此選項;這是 Router REST API 的一項功能。 -
類型 整數 最大值 4294967295
MySQL Router ID。
-
類型 字串 預設值 PEM 格式的 SSL 公開金鑰憑證檔案的路徑名稱。這用於在引導程序期間促進伺服器端驗證。
-
類型 字串 預設值 用於加密 Router 到伺服器連線的 PEM 格式 SSL 私密金鑰檔案的路徑名稱。另請參閱 第 4.4 節,「TLS 組態」。
-
類型 字串 預設為安全的 SSL 曲線清單。將此字串格式化為以冒號分隔的曲線名稱清單。
-
類型 字串 預設為安全的 SSL 加密演算法清單。將此字串格式化為以冒號分隔的加密演算法名稱清單。
-
類型 字串 預設值 DISABLED
有效值 DISABLED
VERIFY_CA
VERIFY_IDENTITY
驗證伺服器向 Router 提供的 SSL 憑證。
DISABLED
:如果伺服器在交握期間未提供憑證,連線將會失敗。VERIFY_CA
:如果伺服器的憑證與 MySQL Router 信任的 CA 不符,連線將會失敗。VERIFY_IDENTITY
:如果伺服器的憑證與 MySQL Router 信任的 CA 不符,或者伺服器憑證的主題與 MySQL Router 連線的主機名稱或 IP 位址不符,連線將會失敗。
-
類型 字串 預設值 AS_CLIENT
有效值 AS_CLIENT
DISABLED
PREFERRED
REQUIRED
在 MySQL Router 和伺服器之間連線時要使用的 SSL 連線模式。另請參閱 第 4.4 節,「TLS 組態」。
-
命令列格式 --server-ssl-ca file_path
類型 字串 預設值 PEM 格式憑證授權單位 (CA) 憑證檔案的路徑名稱。該檔案包含受信任的 SSL 憑證授權單位清單。另請參閱 第 4.4 節,「TLS 組態」。
-
命令列格式 --server-ssl-capath dir_path
類型 字串 預設值 包含 PEM 格式受信任的 SSL 憑證授權單位 (CA) 憑證檔案的目錄的路徑名稱。另請參閱 第 4.4 節,「TLS 組態」。
-
命令列格式 --client-ssl-cert file_path
類型 字串 預設值 PEM 格式的 SSL 公開金鑰憑證檔案的路徑名稱。這用於在引導程序期間促進用戶端驗證。
如同
-client_ssl_key
,此選項僅在引導程序期間使用,該引導程序使用 root 帳戶。當使用 REQUIRE X509 建立 root 帳戶時,此選項非常有用,因此以 root 身分登入需要用戶端自行驗證。 -
命令列格式 --server-ssl-crlpath dir_path
類型 字串 預設值 包含 PEM 格式憑證撤銷清單檔案的目錄路徑。另請參閱 第 4.4 節,「TLS 組態」。
-
命令列格式 --server-ssl-crl file_path
類型 字串 預設值 包含 PEM 格式憑證撤銷清單的檔案路徑名稱。另請參閱 第 4.4 節,「TLS 組態」。
-
命令列格式 --client-ssl-key file_path
類型 字串 預設值 用於加密用戶端到 Router 連線的 PEM 格式 SSL 私密金鑰檔案的路徑名稱。另請參閱 第 4.4 節,「TLS 組態」。
-
類型 字串 DH 參數檔案的檔案名稱。如果指定且不為空,則會使用此檔案中的 DH 參數,而不是內部的預設 DH 參數。將 DH 參數檔案格式化為 PEM 格式。
-
類型 字串 允許用戶端和 MySQL Router 之間使用的曲線,預設為安全的 SSL 曲線清單。將此字串格式化為以冒號分隔的曲線名稱清單。
-
類型 字串 允許用戶端和 MySQL Router 之間使用的加密演算法,預設為安全的 SSL 加密演算法清單。將此字串格式化為以冒號分隔的加密演算法名稱清單。
-
類型 字串 預設值 PREFERRED
有效值 PREFERRED
DISABLED
PASSTHROUGH
REQUIRED
控制從用戶端到 MySQL Router 的連線是否必須加密。另請參閱 第 4.4 節,「TLS 組態」。
-
類型 字串 預設值 PREFERRED
有效值 PREFERRED
DISABLED
REQUIRED
VERIFY_CA
VERIFY_IDENTITY
用於連線到 MySQL 中繼資料伺服器的 SSL 模式。如果未設定,則預設為
PREFERRED
。當設定為 PREFERRED(預設值)時,如果未使用 SSL 且與中繼資料伺服器的連線未加密,引導程序會發出警告。
可用的值為 DISABLED、PREFERRED、REQUIRED、VERIFY_CA 和 VERIFY_IDENTITY。如同 mysql 用戶端,此值不區分大小寫。
還有一個用於引導程序的執行階段選項;請參閱
--ssl-mode
。 -
類型 字串 具有存取 MySQL 伺服器中繼資料結構描述權限的已產生 MySQL 使用者。此使用者的密碼會自動產生,並儲存在加密的 金鑰環中。預設情況下,此金鑰環的加密金鑰儲存在受讀取保護的 主要金鑰儲存檔案中,該檔案在組態檔案中定義。最常見的情況是,此使用者和相關聯的密碼會在引導期間自動產生。相關的命令列選項為
--force-password-validation
和--password-retries
。預設情況下,產生的密碼會通過 STRONG validate_password 強度。密碼完全由 Router 管理,且永遠不會公開,並使用作業系統執行 MySQL Router 的帳戶儲存在本機金鑰環系統中。然後,Router 可以使用它來連線到 InnoDB Cluster 並擷取目前的拓撲資訊。預設情況下,Router 和中繼資料伺服器之間的會話會使用 SSL 加密。
產生的金鑰環檔案儲存在何處取決於如何組態引導程序。對於獨立安裝(當使用
--directory
時),它會儲存在獨立目錄中的run/
下。對於系統範圍的安裝,它會儲存在系統範圍的執行階段狀態目錄中,且該路徑是特定於平台的。如需其他資訊,請參閱master_key_path
和keyring_path
。此使用者會被指派(並需要)下列權限
Privileges needed by the Router account: On Metadata Server: SELECT ON mysql_innodb_cluster_metadata.* On Target Replica Sets: SELECT ON performance_schema.replication_group_members SELECT ON performance_schema.replication_group_member_stats
產生的使用者名稱遵循此模式:mysql_router_
{router_id}
_[0-9a-z]{7}
,其中 {router_id} 是數值路由器 ID,而 [0-9a-z]{7} 是 7 個隨機的小寫字母數字字元。如果mysqlrouter.conf
中已存在路由器 ID,則會重複使用該 ID,且其值不能超過 4294967295 (2^32-1)。注意此使用者與在
[DEFAULT]
區段中定義的user
定義不同,後者是系統使用者。 -
類型 字串 InnoDB Cluster 的名稱。
注意用來列出 MySQL InnoDB 叢集名稱的 SQL 查詢:SELECT * FROM mysql_innodb_cluster_metadata.clusters;
-
類型 整數 預設值 0
有效值 0
1
啟用群組複寫通知。啟用後,Router 會以非同步方式收到有關大多數叢集變更的通知。可以在
mysqlrouter.conf
中手動啟用,或者在引導期間使用--conf-use-gr-notifications
命令列選項啟用。當 Router 從群組複寫收到以下任何通知時,它會重新整理叢集中繼資料
group_replication/membership/quorum_loss
group_replication/membership/view
group_replication/status/role_change
group_replication/status/state_change
注意群組複製通知功能需要 Router 與每個執行 X Plugin 的實例之間建立 X Protocol 連線。如果 X Protocol 連線不可用,則會以如同未啟用通知功能的方式,依照
ttl
間隔執行中繼資料重新整理。儘管群組複製通知依賴 X Protocol 連線,收到的通知會觸發中繼資料重新整理,該重新整理會使用傳統的 MySQL 通訊協定連線至實例。
啟用時,群組複製通知功能允許較高的
ttl
值,因為依照ttl
間隔執行的中繼資料重新整理會變成額外的安全措施,而非保持叢集狀態資訊為最新的主要方法。停用時,建議使用較低的ttl
值(例如預設值 0.5 秒),以避免經常重新連線至實例並查詢中繼資料變更所造成的額外負荷。 -
類型 數值 預設值 0.5
最小值 0
最大值 3600
中繼資料快取中資訊的存留時間(以秒為單位)。
接受整數或浮點數值。粒度限制為毫秒,其中 0.001 等於一毫秒。精確度會截斷為支援的範圍;例如,TTL=0.0119 會被視為 11 毫秒。0 值表示中繼資料快取模組會以緊密的迴圈連續查詢中繼資料。
該值必須小於
auth_cache_refresh_interval
和auth_cache_ttl
,否則 Router 將無法啟動。無論地區設定為何,唯一支援的小數分隔符號為 '.' (句點),且支援科學記號,例如 TTL=1.6E-2。
-
類型 字串 預設值 (Windows) CON
預設值 (其他) /dev/stderr
有效值 (Windows) CON
NUL
有效值 (其他) /dev/null
/dev/stderr
/dev/stdout
將主控台記錄輸出直接導向此裝置目的地;在 [consolelog] 區段下設定。預設值為 /dev/stderr,空值則使用預設值。
可用的值包括:
/dev/stdout
、/dev/stderr
和/dev/null
;或 Windows 上的CON
和NUL
。[DEFAULT] logging_folder= [consolelog] destination=/dev/null
-
類型 字串 將記錄輸出重新導向至位於
logging_folder
目錄中名為filename
的特定檔案。它必須定義為檔案名稱而非檔案路徑,且適用於 [logger] 和 [filelog] 區段。使用 [logger] 的
filename
定義 [filelog] 區段的預設值,也會將 Router 的記錄檔從mysqlrouter.log
變更為這個新值。[DEFAULT] logging_folder=/path/to/logs/ [logger] filename = router_error.log
如果 filename 在 [logger] 下設定但未使用任何基於檔案的記錄器,Router 不會報告錯誤。
使用 [filelog] 的
filename
[DEFAULT] logging_folder=/path/to/logs/ [filelog:a] filename = a_router_error.log [filelog:b] filename = b_router_error.log
如果 filename 在 [filelog] 下為空白或未設定,則會使用 [logger] 下的 filename 定義;如果 filename 在 [logger] 下也未設定,則會使用預設記錄檔 (
mysqlrouter.log
)。相關說明:將主控台輸出導向至
/dev/null
[DEFAULT] logging_folder= [consolelog] destination=/dev/null
-
類型 字串 預設值 INFO
有效值 DEBUG
NOTE
INFO
WARNING
ERROR
SYSTEM
FATAL
使用 logger 外掛程式來記錄通知、錯誤和偵錯資訊。可用的記錄層級包括 DEBUG、NOTE、INFO (預設)、WARNING、ERROR、SYSTEM 和 FATAL。這些值不區分大小寫。
INFO 層級會顯示所有資訊訊息、警告和錯誤訊息。DEBUG 層級會顯示來自 Router 程式碼的其他診斷資訊,包括成功路由。SYSTEM 包含啟動訊息等訊息。
[logger] level = DEBUG
輸出行為取決於
logging_folder
選項。將logging_folder
設定為資料夾會將名為mysqlrouter.log
的記錄檔儲存至該資料夾。將logging_folder
設定為空值或不設定會將記錄輸出至主控台。它是在 [DEFAULT] 區段中設定。引導程式會使用
--config
接受組態檔,並使用記錄器層級定義。 -
類型 字串 記錄器時間戳記精確度;具有範例值的可用定義如下
second、sec 或 s
: 2019-05-10 12:10:25millisecond、msec 或 ms
: 2019-05-10 12:10:25.428microsecond、usec 或 us
: 2019-05-10 12:10:25.428754nanosecond、nsec 或 ns
: 2019-05-10 12:10:25.428754000
-
類型 整數 預設值 8081
接聽 HTTP 要求的 TCP 連接埠;預設值為 8081。
-
類型 字串 預設值 0.0.0.0
繫結至 HTTP
port
的 IP 位址;預設值為 0.0.0.0。 -
類型 字串 靜態檔案要求的基底目錄;預設為空白。空值表示不提供靜態檔案。
-
類型 字串 [http_auth_realm] 實例的名稱。
-
類型 整數 預設值 1
有效值 1
0
值 1 會啟用 SSL,而 0 會停用 SSL。需要支援 TLSv1.2 或更新版本的 TLS 用戶端。這是在 [http_server] 區段下定義。
-
類型 字串 PEM 格式憑證及其鏈結憑證的檔案名稱;如果 ssl=1,則為必要項目。這是在 [http_server] 區段下定義。
-
類型 字串 PEM 格式金鑰的檔案名稱;如果 ssl=1,則為必要項目。這是在 [http_server] 區段下定義。
-
類型 字串 密碼規格(請參閱 openssl 的 'ciphers' 清單)。預設值為所有已核准密碼的逗號分隔清單。未知密碼會以靜默方式忽略。如果密碼清單為空白且 ssl=1,則會失敗。這是在 [http_server] 區段下定義。
-
類型 字串 從此 PEM 格式檔案讀取 DH 參數。如果 ssl=1,預設會使用 RFC 5114 中的 dh-param。這是在 [http_server] 區段下定義。
-
類型 字串 預設值 (Windows) poll
預設值 (其他) linux_epoll
有效值 (Windows) poll
有效值 (其他) linux_epoll
poll
處理非同步作業的 IO 後端。通用輪詢後端適用於所有平台,而每個平台都可以提供替代的後端。
選項包括
poll
(所有平台)和linux_epoll
(Linux)。在 Linux 上預設為linux_epoll
。[io] backend=linux_epoll threads=32
注意這是多個
backend
選項的其中一個,每個選項都在不同的[
中,用途也不同。section
][io] backend
用於非同步作業。[http_auth_realm] backend
定義與特定領域關聯的後端自訂名稱[http_auth_backend] backend
驗證後端類型
-
類型 數值 預設值 0
最小值 0
最大值 1024
處理連線的 IO 線程數目。
預設值為 0 (使用所有可用的 CPU 核心/線程),但也接受介於 1 和 1024 之間的數字。在執行階段,系統可能會將上限限制在超出此值之外。
[io] backend=linux_epoll threads=32
-
類型 數值 預設值 1
最小值 0
最大值 2^63-1
閒置伺服器連線可供其他用戶端連線重複使用前需等待的秒數。
-
類型 整數 預設值 0
最小值 0
最大值 1
是否啟用連線共用。
-
類型 數值 預設值 5
最小值 1
最大值 4294967296
閒置連線在關閉之前於連線集區中保留的秒數。這是設定在 [connection_pool] 區段中,並會影響連線集區中的所有路由。預設值為 5,接受 1 到 4294967296 之間的值。
-
類型 數值 預設值 0
最小值 0
最大值 4294967296
在用戶端斷線後,連線池中保持開啟的連線數目;此設定位於
[connection_pool]
區段。預設值為 0,這會停用連線池。 -
類型 布林值 預設值 1
啟用或停用用戶端與路由器之間 TLS 工作階段的快取。
注意預設為啟用。如果未設定此參數,則會啟用快取。若要停用快取,您必須明確定義它。
-
類型 整數 預設值 1024
最小值 1
最大值 2^31-1
定義快取的工作階段最大數量。如果將新的工作階段新增至快取導致快取的工作階段數量超過定義的最大值,則會捨棄最舊的快取工作階段,以允許快取最新的工作階段。
-
client_ssl_session_cache_timeout
類型 整數 預設值 300
最小值 1
最大值 84600
定義工作階段保留在快取中的最長時間(以秒為單位)。如果達到逾時時間,且此工作階段未被重複使用,則該工作階段會從快取中移除,並且連線會關閉。
-
類型 布林值 預設值 1
啟用或停用路由器與伺服器之間 TLS 工作階段的快取。
注意預設為啟用。如果未設定此參數,則會啟用快取。若要停用快取,您必須明確定義它。
-
類型 整數 預設值 1024
最小值 1
最大值 2^31-1
定義快取的工作階段最大數量。如果將新的工作階段新增至快取導致快取的工作階段數量超過定義的最大值,則會捨棄最舊的快取工作階段,以允許快取最新的工作階段。
-
server_ssl_session_cache_timeout
類型 整數 預設值 300
最小值 1
最大值 84600
TLS 工作階段從伺服器 TLS 工作階段快取中移除前的時間(以秒為單位)。
-
類型 整數 預設值 7
最小值 1
最大值 3600
如果傳統連線因暫時性錯誤而失敗(例如
max-connections reached
),MySQL Router 會等待定義的秒數,然後再重試連線。連線會根據定義的路由策略進行重試。如果未定義
connect_retry_timeout
,則預設為 7 秒。如果connect_retry_timeout
的值在有效值範圍之外定義,MySQL Router 將無法啟動。注意如果啟用連線共用,則重試的連線會連至與初始連線嘗試相同的伺服器。
如果連線在驗證發生後因暫時性錯誤而失敗,則只有在用戶端與路由器之間的連線已使用 TLS 加密或具有公鑰時,才能重試連線。
表 4.17:SSL 模式和重試
client_ssl_mode
server_ssl_mode
支援重試
PASSTHROUGH
任何
否
DISABLED
任何
否
PREFERRED
AS_CLIENT
否
PREFERRED
任何其他模式
是
REQUIRED
任何
是
-
類型 字串 [http_auth_backend]
區段的名稱。注意這是多個
backend
選項的其中一個,每個選項都在不同的[
中,用途也不同。section
][io] backend
用於非同步作業。[http_auth_realm] backend
定義與特定領域關聯的後端自訂名稱[http_auth_backend] backend
驗證後端類型
-
類型 字串 預設值 基本
HTTP 驗證方法;預設為基本。
-
類型 字串 呈現給驗證使用者的領域名稱。
-
類型 字串 預設值 有效使用者
要求使用者使用驗證後端進行驗證;預設為
valid-user
,這會啟用此檢查。 -
類型 字串 預設值 檔案
後端實作的名稱;接受的值為
file
(預設) 或metadata_cache
。[http_auth_backend:name] backend=metadata_cache [metadata_cache] auth_cache_refresh_interval=2 auth_cache_ttl=-1
注意這是多個
backend
選項的其中一個,每個選項都在不同的[
中,用途也不同。section
][io] backend
用於非同步作業。[http_auth_realm] backend
定義與特定領域關聯的後端自訂名稱[http_auth_backend] backend
驗證後端類型
-
類型 字串 後端儲存檔案的名稱,與
data_folder
目錄相對。 -
類型 字串 有效值 gr
rs
Router 針對其啟動的 AdminAPI 物件類型,為 InnoDB ReplicaSet (rs) 或 InnoDB Cluster (gr)。針對叢集集使用 'gr'。
啟動會評估目標執行個體,並在產生的組態檔中相應地設定此選項。
-
類型 整數 預設值 1
最小值 1
最大值 65535
定義檢查隔離目標連線之間隔時間,以秒為單位。如果可以連線,目標會移出隔離區並可用於連線。
如果定義了無效值,MySQL Router 將無法啟動,並且會記錄錯誤。
例如
[destination_status] error_quarantine_threshold=5 error_quarantine_interval=20
注意如果在組態檔中未定義,則會使用預設值 1。
-
類型 整數 預設值 1
最小值 1
最大值 3600
定義在 MySQL Router 將路由目標加入隔離區並停止使用它作為目標之前,連線至路由目標的連續失敗嘗試次數的閾值,直到隔離機制清除該目標。例如,如果設定為 5,則在連續 5 次連線嘗試失敗後,目標會被隔離。
如果定義了無效值,MySQL Router 將無法啟動,並且會記錄錯誤。
例如
[destination_status] error_quarantine_threshold=5 error_quarantine_interval=20
注意如果在組態檔中未定義,則會使用預設值 1。