MySQL Router 接受傳遞至 mysqlrouter 的命令列選項,以影響其行為,或根據 InnoDB 叢集啟動路由器。
啟動路由器時,您可以選擇性地使用 --config
來傳遞主要組態檔案的位置(否則會使用預設位置),以及使用 --extra-config
來傳遞額外的組態檔案。
啟動命令列選項會影響啟動 MySQL Router 時所使用的產生檔案和目錄。
mysqlrouter 選項摘要
表格 4.2 一般選項
選項名稱 | 說明 |
---|---|
--conf-set-option | 在啟動期間設定產生組態選項的值 |
--config | 從提供的檔案讀取組態選項 |
--extra-config | 在從預設位置或由 --config 選項指定的檔案讀取組態檔案之後,讀取此檔案 |
--help | 顯示說明文字並結束 |
--pid-file | 儲存 PID 檔案的位置 |
--user | 以具有已定義使用者名稱或數值使用者 ID 的使用者身分執行 mysqlrouter |
--version | 顯示版本資訊並結束 |
表格 4.3 啟動選項
選項名稱 | 說明 |
---|---|
--account | 啟動後由路由器使用的 MySQL 使用者帳戶 |
--account-create | 啟動帳戶建立行為 |
--account-host | 用於啟動帳戶的主機模式 |
--bootstrap | 啟動並設定路由器以使用 MySQL InnoDB 叢集運作 |
--bootstrap-socket | 透過 Unix 網域插槽連線至 MySQL Metadata 伺服器,與 --bootstrap 一起使用 |
--conf-base-port | 用於接聽路由器連接埠的基本連接埠 |
--conf-bind-address | 路由器接聽插槽應繫結的介面 IP 位址 |
--conf-skip-tcp | 是否停用繫結傳入連線的 TCP 連接埠 |
--conf-target-cluster | 將 target_cluster Metadata 選項設定為叢集類型 |
--conf-target-cluster-by-name | 將 target_cluster Metadata 選項設定為特定叢集名稱 |
--conf-use-gr-notifications | 啟用群組複寫通知 |
--conf-use-sockets | 是否使用 Unix 網域插槽 |
--connect-timeout | 連線嘗試 Metadata 伺服器時被視為逾時之前的秒數 |
--directory | 為新的路由器執行個體建立獨立目錄 |
--disable-rest | 停用將 REST API 組態詳細資料產生到產生的 mysqlrouter.conf 檔案中 |
--disable-rw-split | 停用將讀寫分離組態詳細資料產生到產生的 mysqlrouter.conf 檔案中 |
--force | 強制重新設定路由器可能存在的執行個體 |
--force-password-validation | 自動建立使用者帳戶時,不要略過 validate_password 機制 |
--https-port | MySQL Router REST API HTTP 伺服器連接埠 |
--master-key-reader | 傳回 STDOUT 主金鑰的指令碼 |
--master-key-writer | 從 STDIN 讀取主金鑰的指令碼 |
--name | 為路由器執行個體提供符號名稱 |
--password-retries | 用於產生路由器使用者密碼的重試次數 |
--read-timeout | 讀取操作 Metadata 伺服器時被視為逾時之前的秒數 |
--report-host | 路由器的主機名稱;覆寫自動偵測 |
--strict | 啟用啟動嚴格模式 |
表格 4.4 SSL 選項
選項名稱 | 說明 |
---|---|
--client-ssl-ca | PEM 格式的憑證授權單位 (CA) 憑證檔案的路徑 |
--client-ssl-capath | 包含 PEM 格式的信任 SSL 憑證授權單位 (CA) 憑證檔案的目錄路徑。 |
--client-ssl-cert | PEM 格式的 SSL 公開金鑰憑證檔案的路徑,用於加密用戶端到路由器的連線 |
--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 | PEM 格式的 SSL 私密金鑰檔案的路徑名稱,用於加密用戶端到路由器的連線 |
--client-ssl-mode | 控制是否必須加密從用戶端到 MySQL Router 的連線,預設為 PREFERRED (如果未設定) |
--server-ssl-ca | PEM 格式的憑證授權單位 (CA) 憑證檔案的路徑 |
--server-ssl-capath | 包含 PEM 格式的信任 SSL 憑證授權單位 (CA) 憑證檔案的目錄路徑。 |
--server-ssl-cipher | 伺服器的 SSL 密碼編譯 |
--server-ssl-crl | 包含 PEM 格式的憑證撤銷清單的檔案路徑 |
--server-ssl-crlpath | 包含 PEM 格式的憑證撤銷清單檔案的目錄路徑 |
--server-ssl-curves | 伺服器的 SSL 曲線 |
--server-ssl-mode | 控制是否必須加密從路由器到伺服器的連線。 |
--server-ssl-verify | 驗證伺服器提供給路由器的 SSL 憑證 |
--ssl-ca | SSL 憑證授權單位檔案的路徑,用於驗證伺服器的憑證 |
--ssl-capath | 包含信任 SSL 憑證授權單位憑證檔案的目錄 |
--ssl-cert | 用戶端 SSL 憑證,以在啟動期間協助用戶端驗證 |
--ssl-cipher | 如果啟用 SSL,則允許使用的 SSL 密碼編譯清單,以冒號分隔 |
--ssl-crl | 驗證伺服器憑證時要使用的 SSL CRL 檔案路徑 |
--ssl-crlpath | 驗證伺服器憑證時要使用的包含 SSL CRL 檔案的目錄路徑 |
--ssl-key | 私密 SSL 金鑰,以在啟動期間協助用戶端驗證 |
--ssl-mode | 在啟動期間和正常操作時,連線至 Metadata 伺服器時所需的安全性狀態。類似於 mysql 用戶端中的 --ssl-mode |
--tls-version | 如果啟用 SSL,則要求使用的 TLS 版本清單,以逗號分隔 |
表格 4.5 Windows 服務選項
選項名稱 | 說明 |
---|---|
--clear-all-credentials | 清除所有儲存的認證 |
--install-service | 將 MySQL Router 安裝為服務,並將其設定為在 Windows 重新啟動時自動啟動;服務名稱預設為 MySQLRouter (僅限 Windows) |
--install-service-manual | 將 MySQL Router 安裝為可以手動啟動的服務;服務名稱預設為 MySQLRouter (僅限 Windows) |
--remove-credentials-section | 移除區段的認證 |
--remove-service | 移除做為 Windows 服務的 MySQL Router;服務名稱預設為 MySQLRouter |
--service | 將 MySQL Router 做為 Windows 服務啟動 |
--update-credentials-section | 更新區段的憑證 |
mysqlrouter 選項說明
-
--version
,-V
命令列格式 --version , -V
顯示應用程式的版本號碼和相關資訊,然後結束。例如
$> mysqlrouter --version MySQL Router v8.4.0 on Linux (64-bit) (GPL community edition)
-
--help
,-?
命令列格式 --help , -?
顯示說明和資訊,然後結束。
--help
選項有一個額外的好處。除了每個選項的說明之外,--help
選項還會顯示用於尋找組態檔的路徑,以及一些預設路徑。以下是--help
輸出的摘錄,顯示來自 Ubuntu 16.04 機器的範例$> mysqlrouter --help ... Start MySQL Router. Configuration read from the following files in the given order (enclosed in parentheses means not available for reading): (/etc/mysqlrouter/mysqlrouter.conf) /home/philip/.mysqlrouter.conf Plugin Path: /usr/lib/x86_64-linux-gnu/mysqlrouter Default Log Directory: /var/log/mysqlrouter Default Persistent Data Directory: /var/lib/mysqlrouter Default Runtime State Directory: /run/mysqlrouter Usage: mysqlrouter [-V|--version] [-?|--help] ...
組態區段顯示可用於讀取組態檔的路徑順序。在此情況下,只有第二個檔案可存取。
-
--bootstrap
,URI
-B
URI
命令列格式 --bootstrap URI, -B URI
類型 字串 透過連線到提供的 URI 上的 InnoDB Cluster 元資料伺服器,執行 MySQL Router 引導的主要選項。MySQL Router 會根據從 InnoDB Cluster 元資料伺服器擷取的資訊自行組態。如果需要,系統會提示輸入密碼。如果 URI 中未提供使用者名稱,則會使用預設使用者名稱「root」。如需使用路徑指定伺服器執行個體的相關資訊,請參閱使用類似 URI 的連線字串連線。
注意雖然
--bootstrap
接受 TCP/IP 連線的 URI,但使用具有本機 Unix 網域通訊端名稱的--bootstrap-socket
選項會將傳遞至--bootstrap
選項的 URI 中的「主機:連接埠」部分取代為同一部電腦上的通訊端。預設情況下,引導程序會執行 MySQL Router 的系統範圍組態。只能針對系統範圍操作組態一個 MySQL Router 執行個體。MySQL Router 的系統執行個體的
router_name
為「system」。如果需要其他執行個體,請使用--directory
選項來建立獨立的 MySQL Router 安裝。URI
:來自 InnoDB Cluster 的伺服器執行個體,用於擷取元資料資訊。如果提供的URI
是唯讀執行個體,MySQL Router 會自動重新連線到 InnoDB Cluster 中的讀寫執行個體,以便註冊 MySQL Router。如果您在啟動 MySQL Router 時已存在組態檔,並使用
--bootstrap
,則會重複使用該檔案中現有的router_id
,並發生重新組態程序。組態檔會從頭開始重新產生,且會重新建立 MySQL Router 的元資料伺服器帳戶,但使用相同的名稱。在重新組態程序期間,對現有組態檔所做的所有變更都會被捨棄。若要自訂組態檔並仍然保留自動重新組態 (引導) 的功能,您可以使用
--extra-config
命令列選項來指定在主要組態檔之後讀取的其他組態檔。之所以使用這些組態選項,是因為在主要組態檔之後載入此額外組態檔。引導程序會建立新的 MySQL 使用者帳戶,並具有隨機產生的密碼,供該特定的 MySQL Router 執行個體使用。當連線至元資料伺服器和 InnoDB 叢集以擷取有關其目前狀態的資訊時,MySQL Router 會使用此帳戶。如需此使用者 (包括密碼的儲存方式及其所需的 MySQL 權限) 的詳細資訊,請參閱
MySQL 使用者選項
的文件。產生的組態檔名為
mysqlrouter.conf
,其位置取決於所組態的執行個體類型、系統和套件。對於系統範圍安裝,產生的組態檔會新增至系統的組態目錄,例如/etc
或%PROGRAMDATA%\MySQL\MySQL Router\
。執行mysqlrouter --help
將會顯示此位置。如果使用超級使用者 (uid=0) 執行引導,則需要
--user
選項。雖然不建議,但可以強制執行超級使用者,方法是將其名稱當做引數傳遞,例如 --user=root。執行
--bootstrap
所需的最低 GRANT 權限為GRANT CREATE USER ON *.* TO 'bootstrapuser'@'%' WITH GRANT OPTION; GRANT SELECT, INSERT, UPDATE, DELETE, EXECUTE ON mysql_innodb_cluster_metadata.* TO 'bootstrapuser'@'%'; GRANT SELECT ON mysql.user TO 'bootstrapuser'@'%'; GRANT SELECT ON performance_schema.replication_group_members TO 'bootstrapuser'@'%'; GRANT SELECT ON performance_schema.replication_group_member_stats TO 'bootstrapuser'@'%'; GRANT SELECT ON performance_schema.global_variables TO 'bootstrapuser'@'%';
使用
--bootstrap
會將預設值新增至產生的 MySQL Router 組態檔,且其中某些預設值取決於其他條件。以下列出部分會影響產生預設值的條件,其中預設值定義為單獨傳遞--bootstrap
。表 4.6 會影響預設 --bootstrap 值的條件
條件 說明 --conf-base-port
修改每個連線類型的產生的
bind_port
值。預設情況下,產生的
bind_port
值如下:對於傳統協定,讀寫使用 6446,而唯讀使用 6447;對於 X 協定,讀寫使用 6448,而唯讀使用 6449。將
--conf-base-port
設定為 0 會將預設bind_port
值變更為下列預設值:對於傳統協定,讀寫使用 6446,而唯讀使用 6447;對於 X 協定,讀寫使用 64460,而唯讀使用 64470。--conf-use-sockets
插入每個連線類型的 socket
定義。--conf-skip-tcp
未定義 TCP/IP 連線定義。 --directory
影響所有檔案路徑,並產生其他檔案。 其他 此清單並非詳盡無遺,其他選項和條件也會影響產生的值。
-
--bootstrap-socket
socket_name
命令列格式 --bootstrap-socket socket_name
平台特定 Linux 與
--bootstrap
搭配使用,以使用本機 Unix 網域通訊端而非 TCP/IP 進行引導。--bootstrap-socket
值會將--bootstrap
定義中的「主機:連接埠」部分取代為指派的通訊端名稱,以使用 Unix 網域通訊端連線到 MySQL 元資料伺服器。這是從中引導的 MySQL 執行個體,且如果使用通訊端,此執行個體必須位於同一部電腦上。如需有關引導運作方式的更多詳細資料,請參閱--bootstrap
。此選項與
--conf-use-sockets
命令列選項不同,後者會在引導程序期間設定socket
組態檔選項。此選項在 Windows 上不可用。
-
--directory
,dir_path
-d
dir_path
命令列格式 --directory dir_path, -d dir_path
類型 字串 指定會在定義的目錄中建立獨立的 MySQL Router 安裝,而不是組態系統範圍的路由器執行個體。這也允許在同一個系統上建立多個路由器執行個體。
Router 的獨立目錄結構為
$path/start.sh $path/stop.sh $path/mysqlrouter.pid $path/mysqlrouter.conf $path/mysqlrouter.key $path/run $path/run/keyring $path/data $path/log $path/log/mysqlrouter.log
如果指定此選項,則金鑰環檔案會儲存在該執行個體的執行階段狀態目錄下,位於指定目錄中的
run/
下,而非系統範圍的執行階段狀態目錄。如果也啟用
--conf-use-sockets
,則產生的通訊端檔案也會新增至此目錄。 -
命令列格式 --master-key-writer file_path
類型 字串 此選用的引導選項接受從 STDIN 讀取主金鑰的指令碼。它也會使用 MySQL Router 在呼叫
master-key-writer
指令碼之前設定的 ROUTER_ID 環境變數。必須一起使用
master-key-writer
和master-key-reader
選項,且使用它們表示mysqlrouter.conf
中不得定義master_key_file
選項,因為主金鑰不會寫入mysqlrouter.key
主金鑰檔案。這也會寫入產生的 MySQL Router 組態檔中,作為
master-key-writer
[DEFAULT] 選項。我們的範例中使用的名為
writer.sh
的 bash 指令碼的範例內容#!/bin/bash KID_=$(keyctl padd user ${ROUTER_ID} @us <&0)
範例用法
$> mysqlrouter --bootstrap=127.0.0.1:3310 --master-key-reader=./reader.sh --master-key-writer=./writer.sh
這也會影響產生的
mysqlrouter.conf
,例如[DEFAULT] ... master-key-reader=reader.sh master-key-writer=writer.sh
-
命令列格式 --master-key-reader file_path
類型 字串 此選用的引導選項接受將主金鑰寫入 STDOUT 的指令碼。它也會使用 MySQL Router 在呼叫
master-key-reader
指令碼之前設定的 ROUTER_ID 環境變數。必須一起使用
master-key-reader
和master-key-writer
選項,且使用它們表示mysqlrouter.conf
中不得定義master_key_file
選項,因為主金鑰不會寫入mysqlrouter.key
主金鑰檔案,而是使用此選項指令碼提供的值。這也會寫入產生的 MySQL Router 組態檔中,作為
master-key-reader
[DEFAULT] 選項。我們的範例中使用的名為
reader.sh
的 bash 指令碼的範例內容#!/bin/bash KID_=$(keyctl search @us user ${ROUTER_ID} 2>/dev/null) if [ ! -z $KID_ ]; then keyctl pipe $KID_ fi
範例用法
$> mysqlrouter --bootstrap=127.0.0.1:3310 --master-key-reader=./reader.sh # Or, multiple hosts--master-key-writer=./writer.sh
這也會影響產生的
mysqlrouter.conf
,例如[DEFAULT] ... master-key-reader=reader.sh master-key-writer=writer.sh
-
命令列格式 --strict
類型 字串 啟用嚴格模式,例如,如果提供的使用者未通過檢查,會使引導
--account
使用者驗證檢查停止引導程序,而非僅發出警告並繼續。 -
命令列格式 --account 使用者名稱
類型 字串 一個用於指定要使用的 MySQL 使用者的啟動選項,它會重複使用現有的 MySQL 使用者帳戶或建立一個新的帳戶;其行為由相關的
--account-create
選項控制。使用
--account
時,會優先考量易於管理而非易於部署,因為多個路由器可能共用同一個帳戶,且使用者名稱和密碼是手動定義,而非自動產生。無論密碼是否在金鑰環中可用,設定此選項都會觸發此帳戶的密碼提示。
在未傳遞
--account
的情況下啟動,不會重新建立現有的 MySQL 伺服器帳戶。使用此選項會假設使用者具有足夠的路由器存取權限,因為啟動程序不會嘗試將遺失的授權新增至現有帳戶。啟動程序會驗證權限,並將失敗檢查的資訊輸出到主控台。除非同時使用選用的
--strict
選項,否則啟動程序會繼續進行,即使這些檢查失敗也一樣。範例所需的權限GRANT USAGE ON *.* TO `theuser`@`%` GRANT SELECT, EXECUTE ON `mysql_innodb_cluster_metadata`.* TO `theuser`@`%` GRANT INSERT, UPDATE, DELETE ON `mysql_innodb_cluster_metadata`.`routers` TO `theuser`@`%` GRANT INSERT, UPDATE, DELETE ON `mysql_innodb_cluster_metadata`.`v2_routers` TO `theuser`@`%` GRANT SELECT ON `performance_schema`.`global_variables` TO `theuser`@`%` GRANT SELECT ON `performance_schema`.`replication_group_member_stats` TO `theuser`@`%` GRANT SELECT ON `performance_schema`.`replication_group_members` TO `theuser`@`%`
不接受從命令列傳入的密碼。例如,傳入「foo:bar」會假設「foo:bar」是所需的使用者名稱,而不是密碼為 bar 的使用者 foo。
-
命令列格式 --account-create 行為
類型 字串 預設值 if-not-exists
有效值 if-not-exists
always
never
指定帳戶建立原則,以協助防止不小心使用錯誤的使用者帳戶啟動。可能的值為:
if-not-exists
(預設):無論如何都啟動;如果帳戶存在,則重複使用該帳戶,否則建立該帳戶。always
:僅在帳戶不存在時啟動,並建立該帳戶。never
:僅在帳戶已存在時啟動,並重複使用該帳戶。
此選項需要同時使用
--account
選項,且不能使用--account-host
選項。 -
命令列格式 --account-host host_pattern
類型 字串 預設值 %
由 MySQL Router 在啟動程序期間建立的帳戶所使用的主機模式。此為選用項目,預設值為 '%'。
多次傳遞此選項以定義多個模式,在此情況下,產生的 MySQL 帳戶會使用相同的密碼。
注意Router 不會執行健全性檢查,也不會確保模式授權 Router 進行連線。
注意啟動會透過捨棄並重新建立使用者來重複使用現有的 Router 帳戶,且此使用者重新建立程序會套用至每個主機。
範例
# One host $> mysqlrouter --bootstrap localhost:3310 --account-host host1 # Or, multiple hosts $> mysqlrouter --bootstrap localhost:3310 --account-host host1 --account-host host2 --account-host host3
-
命令列格式 --conf-use-sockets
平台特定 Linux 啟用本機 Unix 網域套接字。
此選項在啟動時使用,啟用此選項會將
socket
選項新增至產生的組態檔。產生的套接字檔案名稱取決於
protocol
選項。在啟用傳統通訊協定時,讀寫連線的檔案名稱為mysql.sock
,而唯讀連線的檔案名稱為mysqlro.sock
。在啟用 X 通訊協定時,讀寫連線的檔案名稱為mysqlx.sock
,而唯讀連線的檔案名稱為mysqlxro.sock
。此選項在 Windows 上不可用。
-
命令列格式 --conf-use-gr-notifications
在啟動期間啟用
use_gr_notifications
[metadata_cache] 選項。啟用後,Router 會非同步收到關於大多數叢集變更的通知。如需詳細資訊,請參閱use_gr_notifications
。此外,使用此選項會將ttl
設定為 60,並將auth_cache_refresh_interval
設定為 60。 -
命令列格式 --pid-file 路徑
類型 字串 設定 PID 檔案的位置。可以透過三種不同的方式設定(依優先順序):此
--pid-file
命令列選項、在 Router 的組態檔中設定pid_file
,或定義ROUTER_PID
環境變數。如果指定
--bootstrap
,則設定 --pid-file 會導致 Router 失敗。這與 ROUTER_PID 和 pid_file 組態選項不同,如果指定 --bootstrap,則會忽略這些選項。如果未指定
--bootstrap
,則下列情況會導致 Router 失敗:--pid-file 已存在、pid_file 或 ROUTER_PID 已設定但為空,或 Router 無法寫入 PID 檔案。 -
命令列格式 --report-host 主機名稱
類型 字串 選擇性地定義 Router 的主機名稱,而不是依賴自動偵測來判斷在啟動程序期間向中繼資料註冊的外部可見主機名稱。
Router 不會檢查或確認所提供的主機名稱是否可連線,但會使用 RFC 1123 來驗證主機名稱,並使用 RFC 2181 來驗證位址。
所提供的主機名稱會寫入 MySQL InnoDB 叢集中繼資料儲存區的 mysql_innodb_cluster_metadata.hosts 表格中的 host_name 欄位。
-
命令列格式 --conf-skip-tcp
平台特定 Linux 略過用於接聽連入連線的 TCP 連接埠的組態。另請參閱
--conf-use-sockets
。此選項在 Windows 上不可用。
-
命令列格式 --conf-base-port port_num
類型 整數 預設值 0
用於設定每個啟動路由的
bind_port
的接聽 TCP 連接埠所使用的基礎(第一個)值。此值用於傳統讀寫路由,且每個額外配置的連接埠都會遞增一。設定的連接埠順序為傳統讀寫/唯讀,然後是 X 讀寫/唯讀。
將
--conf-base-port
設定為 0 會將預設bind_port
值變更為下列預設值,如下所示:對於傳統通訊協定,讀寫使用 6446,唯讀使用 6447,對於 X 通訊協定,讀寫使用 64460,唯讀使用 64470。範例用法
# Example without --conf-base-port $> mysqlrouter --bootstrap root@localhost:3310 ... Classic MySQL protocol connections to cluster 'devCluster': - Read/Write Connections: localhost:6446 - Read/Only Connections: localhost:6447 X protocol connections to cluster 'devCluster': - Read/Write Connections: localhost:6448 - Read/Only Connections: localhost:6449 # Example demonstrating --conf-base-port set to 0 $> mysqlrouter --bootstrap root@localhost:3310 --conf-base-port 0 ... Classic MySQL protocol connections to cluster 'devCluster': - Read/Write Connections: localhost:6446 - Read/Only Connections: localhost:6447 X protocol connections to cluster 'devCluster': - Read/Write Connections: localhost:64460 - Read/Only Connections: localhost:64470
-
命令列格式 --conf-bind-address 位址
類型 字串 預設值 0.0.0.0
修改由
--bootstrap
在產生的 Router 組態檔中設定的bind_address
值。依預設,啟動會將每個路由的bind_address
設定為 0.0.0.0,而此選項會變更該值。注意如果未定義
bind_address
,預設bind_address
值為 127.0.0.1。 -
命令列格式 --read-timeout 秒數
類型 整數 預設值 30
讀取中繼資料伺服器的作業被視為逾時之前的秒數。
這會影響啟動程序期間的讀取作業,並透過設定產生的
mysqlrouter.conf
中相關的read_timeout
選項,來影響一般的 MySQL Router 作業。此選項設定於
[DEFAULT]
命名空間下。 -
命令列格式 --connect-timeout 秒數
類型 整數 預設值 30
嘗試連線至中繼資料伺服器被視為逾時之前的秒數。
這會影響啟動程序期間的連線,並透過設定產生的
mysqlrouter.conf
中相關的connect_timeout
選項,來影響一般的 MySQL Router 作業。有兩個 connect_timeout 變體。中繼資料伺服器變體定義於
[DEFAULT]
命名空間下,而 MySQL 伺服器變體定義於[routing]
命名空間下。 -
--user {
,user_name
|user_id
}-u {
user_name
|user_id
}命令列格式 --user {user_name|user_id}, -u {user_name|user_id}
平台特定 Linux 類型 字串 以名稱為
user_name
或數值使用者 IDuser_id
的使用者身分執行 mysqlrouter。「使用者」在此內容中是指系統登入帳戶,而不是授權表格中列出的 MySQL 使用者。在啟動時,所有產生的檔案都由此使用者所擁有,且這也會設定相關的user
選項。此系統
user
定義於組態檔的[DEFAULT]
命名空間下。如需其他資訊,請參閱user
選項的文件,其中--user
會進行組態設定。如果以超級使用者 (uid=0) 身分執行啟動,則需要
--user
選項。雖然不建議這麼做,但可以透過傳遞其名稱作為引數(例如 --user=root)來強制超級使用者執行。此選項在 Windows 上不可用。
-
命令列格式 --name router_name
類型 字串 預設值 系統
在初始啟動時,指定獨立 Router 執行個體的符號名稱。此選項為選用,並與
--directory
搭配使用。在建立多個執行個體時,名稱必須是唯一的。 -
命令列格式 --force-password-validation
平台特定 Linux 依預設,MySQL Router 會略過 MySQL 伺服器的 validate_password 機制,而是 Router 會根據已知的 validate_password 預設設定產生並使用強式密碼。這是因為 validate_password 可由使用者組態設定,而 Router 無法考量不尋常的自訂設定。
此選項確保產生的密碼不會跳過密碼驗證 (validate_password),預設為停用。
-
--password-retries
num_retries
命令列格式 --password-retries num_retries
類型 整數 預設值 20
最小值 1
最大值 10000
指定當使用密碼驗證規則建立使用者帳戶時,MySQL Router 應嘗試產生密碼的次數。預設值為 20。有效範圍為 1 到 10000。
失敗的最可能原因是由於自訂的 validate_password 設定具有不尋常的要求,例如至少 50 個字元的長度。在該失敗情境中,
--force-password-validation
設定為 true,和/或停用了mysql_native_password
MySQL 伺服器外掛程式(此外掛程式允許略過驗證)。 -
命令列格式 --force
強制在主機上重新設定先前設定的路由器執行個體。
-
命令列格式 --ssl-mode mode
類型 字串 預設值 PREFERRED
有效值 PREFERRED
DISABLED
REQUIRED
VERIFY_CA
VERIFY_IDENTITY
在連線至中繼資料伺服器時,於啟動和正常操作期間使用的 SSL 連線模式。類似於
--ssl-mode
在 mysql 用戶端中的用法。在啟動期間,路由器與中繼資料伺服器之間的所有連線都會使用指定的 SSL 選項。如果未在設定中指定
ssl_mode
,則預設為 PREFERRED。在正常操作期間,路由器啟動後,其中繼資料快取外掛程式會讀取並遵守所有設定的 SSL 設定。當設定為預設值 (PREFERRED) 以外的值時,會在產生的設定檔中
[metadata_cache]
區段下插入ssl_mode
項目。可用的值為 DISABLED、PREFERRED、REQUIRED、VERIFY_CA 和 VERIFY_IDENTITY。PREFERRED 為預設值。與 mysql 用戶端相同,此值不區分大小寫。
設定檔的對等項目會在
ssl_mode
單獨說明。 -
命令列格式 --ssl-cert file_path
類型 字串 預設值 PEM 格式的 SSL 公開金鑰憑證檔案的路徑名稱。這用於在啟動過程中方便用戶端驗證。這直接符合並使用 MySQL 用戶端的
--ssl-cert
選項的功能。與
--ssl-key
相同,此選項僅在啟動期間使用,該啟動使用 root 帳戶。當使用 REQUIRE X509 建立 root 帳戶時,這很有用,因此以 root 身分登入需要用戶端自行驗證。 -
命令列格式 --ssl-key file_path
類型 字串 PEM 格式的 SSL 私密金鑰檔案的路徑名稱。這用於在啟動過程中方便用戶端驗證。這直接符合並使用 MySQL 用戶端的
--ssl-key
選項的功能。與
--ssl-cert
相同,此選項僅在啟動過程中使用,該啟動使用 root 帳戶。當使用 REQUIRE X509 建立 root 帳戶時,這很有用,因此以 root 身分登入需要用戶端自行驗證。 -
命令列格式 --ssl-cipher ciphers
類型 字串 預設值 如果啟用 SSL,則允許的 SSL 加密清單 (以冒號「:」分隔)。
-
命令列格式 --tls-version versions
類型 字串 預設值 如果啟用 SSL,則要請求的 TLS 版本清單 (以逗號「,」分隔)。
-
命令列格式 --ssl-ca file_path
類型 字串 預設值 用來驗證伺服器憑證的 SSL CA 檔案路徑。
-
命令列格式 --ssl-capath dir_path
類型 字串 預設值 包含用來驗證伺服器憑證的 SSL CA 檔案的目錄路徑。
-
命令列格式 --ssl-crl file_path
類型 字串 預設值 驗證伺服器憑證時要使用的 SSL CRL 檔案路徑。
-
命令列格式 --ssl-crlpath dir_path
類型 字串 預設值 包含驗證伺服器憑證時要使用的 SSL CRL 檔案的目錄路徑。
-
命令列格式 --client-ssl-mode
類型 字串 預設值 PREFERRED
有效值 PREFERRED
DISABLED
PASSTHROUGH
REQUIRED
在啟動和正常操作期間,於 MySQL Router 和用戶端之間連線時使用的 SSL 連線模式。
在啟動期間,路由器與用戶端之間的所有連線都會使用指定的 SSL 選項。如果未在設定中指定
client_ssl_mode
,則預設為PREFERRED
。設定檔的對等項目會在
client_ssl_mode
單獨說明。 -
命令列格式 --client-ssl-cert file_path
類型 字串 預設值 PEM 格式的 SSL 公開金鑰憑證檔案的路徑名稱。這用於在啟動過程中方便用戶端驗證。
與
--client-ssl-key
相同,此選項僅在啟動期間使用,該啟動使用 root 帳戶。當使用 REQUIRE X509 建立 root 帳戶時,這很有用,因此以 root 身分登入需要用戶端自行驗證。 -
命令列格式 --client-ssl-curves
類型 字串 預設為安全的 SSL 曲線清單。將此字串格式化為以冒號分隔的曲線名稱清單。
-
命令列格式 --client-ssl-key file_path
類型 字串 PEM 格式的 SSL 私密金鑰檔案的路徑名稱。這用於在啟動過程中方便用戶端驗證。
與
--client-ssl-cert
相同,此選項僅在啟動過程中使用,該啟動使用 root 帳戶。當使用 REQUIRE X509 建立 root 帳戶時,這很有用,因此以 root 身分登入需要用戶端自行驗證。 -
命令列格式 --client-ssl-cipher
類型 字串 如果啟用 SSL,則允許的 SSL 加密清單 (以冒號「:」分隔)。
-
命令列格式 --client-ssl-dh-params=filepath
類型 字串 DH 參數檔案的檔名。如果指定且不為空,則會使用此檔案中的 DH 參數,而不是內部預設的 DH 參數。將 DH 參數檔案格式化為 PEM 格式。
-
命令列格式 --client-ssl-ca file_path
類型 字串 預設值 用來驗證伺服器憑證的 SSL CA 檔案路徑。
-
命令列格式 --client-ssl-capath dir_path
類型 字串 預設值 包含用來驗證伺服器憑證的 SSL CA 檔案的目錄路徑。
-
命令列格式 --client-ssl-crl file_path
類型 字串 預設值 驗證伺服器憑證時要使用的 SSL CRL 檔案路徑。
-
命令列格式 --client-ssl-crlpath dir_path
類型 字串 預設值 包含驗證伺服器憑證時要使用的 SSL CRL 檔案的目錄路徑。
-
命令列格式 --server-ssl-mode
類型 字串 預設值 PREFERRED
有效值 AS_CLIENT
DISABLED
PREFERRED
REQUIRED
在啟動和正常操作期間,於 MySQL Router 和伺服器之間連線時使用的 SSL 連線模式。
在啟動期間,路由器與伺服器之間的所有連線都會使用指定的 SSL 選項。如果未在設定中指定
server_ssl_mode
,則預設為PREFERRED
。組態檔的等效選項已在
server_ssl_mode
中另行說明。 -
命令列格式 --server-ssl-cipher
類型 字串 如果啟用 SSL,則允許的 SSL 加密清單 (以冒號「:」分隔)。
-
命令列格式 --server-ssl-ca file_path
類型 字串 預設值 用來驗證伺服器憑證的 SSL CA 檔案路徑。
-
命令列格式 --server-ssl-capath dir_path
類型 字串 預設值 包含用來驗證伺服器憑證的 SSL CA 檔案的目錄路徑。
-
命令列格式 --server-ssl-crl file_path
類型 字串 預設值 驗證伺服器憑證時要使用的 SSL CRL 檔案路徑。
-
命令列格式 --server-ssl-crlpath dir_path
類型 字串 預設值 包含驗證伺服器憑證時要使用的 SSL CRL 檔案的目錄路徑。
-
命令列格式 --server-ssl-curves
類型 字串 預設為安全的 SSL 曲線清單。將此字串格式化為以冒號分隔的曲線名稱清單。
-
命令列格式 --server-ssl-verify
類型 字串 預設值 DISABLED
有效值 DISABLED
VERIFY_CA
VERIFY_IDENTITY
驗證伺服器提供給路由器的 SSL 憑證
DISABLED
:如果伺服器在交握期間未提供憑證,則連線會失敗。VERIFY_CA
:如果伺服器的憑證與 MySQL Router 信任的 CA 不符,則連線會失敗。VERIFY_IDENTITY
:如果伺服器的憑證與 MySQL Router 信任的 CA 不符,或伺服器憑證的主體與 MySQL Router 連線的主機名稱或 IP 位址不符,則連線會失敗。
-
--config
,file_path
-c
file_path
命令列格式 --config file_path, -c file_path
用於提供要使用的組態檔的路徑和檔名。如果您想要使用位於預設位置以外之資料夾中的組態檔,請使用此選項。
與
--bootstrap
一起使用時,如果組態檔已存在,且產生的組態檔內容與原始檔不同,則會儲存目前檔案的複本,並附加 .bak 副檔名。現有的 .bak 檔案會被覆寫。 -
--extra-config
,file_path
-a
file_path
命令列格式 --extra-config file_path, -a file_path
用於提供要使用的選用性其他組態檔。如果您想要將組態檔分割成兩個部分以進行測試、在同一部電腦上執行多個應用程式執行個體等,請使用此選項。
此組態檔會在主要組態檔之後讀取。如果有衝突(在多個組態檔中設定了選項),則會使用最後載入的檔案中的值。
-
命令列格式 --install-service [service_name]
平台特定 Windows 將 Router 安裝為 Windows 服務,該服務會在 Windows 啟動時自動啟動。服務名稱預設為 MySQLRouter。
此安裝程序不會驗證透過
--config
傳遞的組態檔。此選項僅適用於 Windows。
-
命令列格式 --install-service-manual [service_name]
平台特定 Windows 將 MySQL Router 安裝為可手動啟動的 Windows 服務。服務名稱預設為 MySQLRouter。
此選項僅適用於 Windows。
-
命令列格式 --remove-service [service_name]
平台特定 Windows 移除 Router Windows 服務;服務名稱預設為 MySQLRouter。
此選項僅適用於 Windows。
-
命令列格式 --service
平台特定 Windows 以 Windows 服務身分啟動 Router。這是一個私人選項,表示它僅供 Windows 服務在以服務身分啟動 Router 時使用。
此選項僅適用於 Windows。
-
命令列格式 --update-credentials-section section_name
平台特定 Windows 此選項僅適用於 Windows,並參考其密碼保存庫。
-
命令列格式 --conf-target-cluster value
類型 字串 有效值 current
primary
設定
target_cluster
中繼資料 MySQL Router 選項。接受下列字串之一-
current
:將target_cluster
設定為包含要進行開機程序的節點的叢集。它會將其定義為叢集的 UUID 值。如果這也是主要節點,它不會像
primary
一樣動態追蹤角色變更;而是保持靜態。 primary
:將target_cluster
設定為主要叢集,包括在執行階段變更時。
另請參閱
--config-target-cluster-by-name
,其將target_cluster
設定為特定的靜態叢集名稱。注意針對 ClusterSet 執行開機程序需要將
cluster_type
Router 組態選項設定為 gr。 -
-
命令列格式 --conf-set-option section_name[:optional_section_key].option=value
類型 字串 在開機程序期間為產生的組態選項設定值;這可以為任何開機程序選項設定值,例如
$> mysqlrouter -B 127.0.0.1:5000 \ --directory=dir1 \ --conf-set-option=logger.level=debug \ --conf-set-option=routing:test_rw.max_connect_errors=0 \ --conf-set-option=routing:test_ro.max_connect_errors=0
這些命令會透過將這些選項定義為這樣來變更這些特定選項的預設值
[logger] level=debug [routing:test_rw] ... max_connect_errors=0 ... [routing:test_ro] ... max_connect_errors=0 ...
--conf-set-option
定義會優先於選項特定的參數來設定特定值。例如,如果在執行開機程序時同時指定--connect-timeout=X
和--conf-set-option=DEFAULT.connect_timeout=Y
,則產生的組態檔中的connect_timeout
會設定為 Y。 -
命令列格式 --conf-target-cluster-by-name clusterName
類型 字串 將
target_cluster
中繼資料 MySQL Router 選項設定為特定的叢集名稱。或者,改為使用
--conf-target-cluster
來指派動態叢集類型,例如主要叢集。 -
--remove-credentials-section
section_name
命令列格式 --remove-credentials-section section_name
平台特定 Windows 移除指定區段的認證。
此選項僅適用於 Windows,並參考其密碼保存庫。
-
命令列格式 --clear-all-credentials
平台特定 Windows 移除儲存在密碼保存庫中的所有認證,藉此清除密碼保存庫。
此選項僅適用於 Windows,並參考其密碼保存庫。
-
命令列格式 --disable-rw-split
預設情況下,會在開機程序時將
[router:read_write_split]
區段新增至產生的mysqlrouter.conf
;而此參數表示不會新增這些詳細資料。如需其他資訊,請參閱 開機程序。 -
命令列格式 --disable-rest
預設情況下,會在開機程序時將 MySQL Router REST API Web 服務功能的組態詳細資料新增至產生的
mysqlrouter.conf
檔案;而此參數表示不會新增這些詳細資料。這不會停用 REST API 功能,因為 REST API 功能稍後可以手動設定(以啟用它)。 -
命令列格式 --https-port value
類型 整數 預設值 8443
最小值 1
最大值 65535
選擇性地在開機程序時定義產生的
mysqlrouter.conf
中 [http_server] 區段下 MySQL Router REST API 的 HTTP 伺服器port
。其預設值為 8443。不會檢查連接埠的可用性。