MySQL Router 接受傳遞至 mysqlrouter 的命令列選項,以影響其行為,或根據 InnoDB 叢集啟動路由器。
啟動 Router 時,您可以選擇性使用 --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 | 啟動後 Router 使用的 MySQL 使用者帳戶 |
| --account-create | 啟動帳戶建立行為 |
| --account-host | 用於啟動帳戶的主機模式 |
| --bootstrap | 啟動並設定 Router 以使用 MySQL InnoDB 叢集運作 |
| --bootstrap-socket | 透過 Unix 網域插槽連線至 MySQL 元資料伺服器,與 --bootstrap 搭配使用 |
| --conf-base-port | 用於接聽 Router 連接埠的基本連接埠 |
| --conf-bind-address | 路由器接聽插槽應繫結的介面 IP 位址 |
| --conf-skip-tcp | 是否停用傳入連線的 TCP 連接埠繫結 |
| --conf-target-cluster | 將 target_cluster 元資料選項設定為叢集類型 |
| --conf-target-cluster-by-name | 將 target_cluster 元資料選項設定為特定叢集名稱 |
| --conf-use-gr-notifications | 啟用群組複寫通知 |
| --conf-use-sockets | 是否使用 Unix 網域插槽 |
| --connect-timeout | 連線嘗試到元資料伺服器被視為逾時之前的秒數 |
| --directory | 為新的 Router 執行個體建立獨立目錄 |
| --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 | 讀取元資料伺服器的作業被視為逾時之前的秒數 |
| --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 | 在啟動和正常操作期間連線至元資料伺服器時所需的安全性狀態。類似於 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 | 將 MySQL Router 移除為 Windows 服務;服務名稱預設為 MySQLRouter |
| --service | 以 Windows 服務身分啟動 MySQL Router |
| --update-credentials-section | 更新區段的認證 |
mysqlrouter 選項說明
-
--version、-V命令列格式 --version , -V顯示應用程式的版本號碼和相關資訊,並結束程式。例如:
$> mysqlrouter --version MySQL Router v9.0.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-BURI命令列格式 --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 中的 "host:port" 部分,替換為同一部機器上的套接字。預設情況下,引導程序會執行 MySQL Router 的系統範圍設定。只能針對系統範圍的操作設定一個 MySQL Router 實例。MySQL Router 的系統實例的
router_name為 "system"。如果需要其他實例,請使用--directory選項來建立獨立的 MySQL Router 安裝。URI:用於從 InnoDB Cluster 擷取元數據資訊的伺服器實例。如果提供的URI是唯讀實例,則 MySQL Router 會自動重新連線到 InnoDB Cluster 中的讀寫實例,以便它可以註冊 MySQL Router。當您使用
--bootstrap啟動 MySQL Router 時,如果已存在設定檔,則會重複使用該檔案中現有的router_id,並執行重新設定程序。設定檔會從頭重新產生,並且會重新建立 MySQL Router 的元數據伺服器帳戶,但名稱相同。在重新設定程序中,對現有設定檔所做的所有變更都會被捨棄。若要自訂設定檔並仍然保留自動重新設定(引導)的功能,您可以使用
--extra-config命令列選項來指定在主要設定檔之後讀取的其他設定檔。因為這個額外的設定檔是在主要設定檔之後載入的,所以會使用這些設定選項。引導程序會建立一個新的 MySQL 使用者帳戶,其中包含隨機產生的密碼,供該特定 MySQL Router 實例使用。MySQL Router 在連線到元數據伺服器和 InnoDB Cluster 時,會使用此帳戶來擷取其目前狀態的資訊。有關此使用者(包括其密碼的儲存方式以及所需的 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-socketsocket_name命令列格式 --bootstrap-socket socket_name平台特定 Linux 與
--bootstrap搭配使用,以使用本機 Unix 網域套接字而不是 TCP/IP 來引導。--bootstrap-socket值會將--bootstrap定義中的 "host:port" 部分,替換為指派的套接字名稱,以使用 Unix 網域套接字連線到 MySQL 元數據伺服器。這是要從中引導的 MySQL 實例,如果使用套接字,則此實例必須位於同一部機器上。有關引導如何運作的更多詳細資訊,請參閱--bootstrap。此選項與
--conf-use-sockets命令列選項不同,後者會在引導程序期間設定socket設定檔選項。此選項在 Windows 上不可用。
-
--directory,dir_path-ddir_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 讀取主金鑰的腳本。它也會使用在呼叫
master-key-writer腳本之前,由 MySQL Router 設定的 ROUTER_ID 環境變數。master-key-writer和master-key-reader選項必須一起使用,而且使用它們表示master_key_file選項不得在mysqlrouter.conf中定義,因為主金鑰不會寫入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 的腳本。它也會使用在呼叫
master-key-reader腳本之前,由 MySQL Router 設定的 ROUTER_ID 環境變數。master-key-reader和master-key-writer選項必須一起使用,而且使用它們表示master_key_file選項不得在mysqlrouter.conf中定義,因為主金鑰不會寫入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" 是所需的使用者名稱,而不是使用者 foo 使用密碼 bar。
-
命令列格式 --account-create 行為類型 字串 預設值 if-not-exists有效值 if-not-existsalwaysnever指定帳戶建立原則,以協助防止意外使用錯誤的使用者帳戶進行引導。可能的值包括:
if-not-exists(預設):無論如何都進行引導;如果帳戶存在,則重複使用該帳戶,否則建立該帳戶。always:僅當帳戶尚不存在時才引導;並建立它。never:僅當帳戶已存在時才引導;並重複使用它。
此選項需要同時使用
--account選項,且不能使用--account-host。 -
命令列格式 --account-host 主機模式類型 字串 預設值 %MySQL Router 在引導過程中建立的帳戶所使用的主機模式。這是可選的,預設為 '%'。
多次傳入此選項以定義多個模式,在這種情況下,產生的 MySQL 帳戶會使用相同的密碼。
注意路由器不會執行健全性檢查,也不會確保該模式授權路由器連線。
注意引導會透過刪除並重新建立使用者來重複使用現有的路由器帳戶,而此使用者重新建立程序適用於每個主機。
範例
# 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] 選項。啟用後,路由器會非同步收到有關大多數叢集變更的通知。如需更多資訊,請參閱use_gr_notifications。此外,使用此選項會將ttl=60 和auth_cache_refresh_interval=60。 -
命令列格式 --pid-file 路徑類型 字串 設定 PID 檔案的位置。可以使用三種不同的方式來設定 (依優先順序排列):此
--pid-file命令列選項、在路由器的組態檔中設定pid_file,或定義ROUTER_PID環境變數。如果指定了
--bootstrap,則設定 --pid-file 會導致路由器失敗。這與 ROUTER_PID 和 pid_file 組態選項不同,如果在指定 --bootstrap 的情況下,它們會被忽略。如果未指定
--bootstrap,則以下情況會導致路由器失敗:--pid-file 已存在、pid_file 或 ROUTER_PID 已設定但為空,或路由器無法寫入 PID 檔案。 -
命令列格式 --report-host 主機名稱類型 字串 可選擇性地定義路由器的主機名稱,而不是依賴自動偵測來判斷在引導過程中註冊到中繼資料的外部可見主機名稱。
路由器不會檢查或確認所提供的主機名稱是否可連線,但會使用 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 連接埠號碼類型 整數 預設值 0透過為每個引導路由設定
bind_port,用於監聽 TCP 連接埠的基本 (第一個) 值。此值用於傳統讀寫路由,而每個額外配置的連接埠值會遞增 1。設定的連接埠順序為傳統讀寫 / 唯讀,然後是 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修改
bind_address值,該值由--bootstrap在產生的路由器組態檔中設定。預設情況下,引導會為每個路由設定bind_address=0.0.0.0,而此選項會變更該值。注意如果未定義
bind_address,則預設的bind_address值為 127.0.0.1。 -
命令列格式 --read-timeout 秒數類型 整數 預設值 30讀取中繼資料伺服器的作業被視為逾時前的秒數。
這會影響引導程序期間的讀取作業,也會透過在產生的
mysqlrouter.conf中設定相關的read_timeout選項來影響正常的 MySQL 路由器作業。此選項在
[DEFAULT]命名空間下設定。 -
命令列格式 --connect-timeout 秒數類型 整數 預設值 30連線至中繼資料伺服器的嘗試被視為逾時前的秒數。
這會影響引導程序期間的連線,也會透過在產生的
mysqlrouter.conf中設定相關的connect_timeout選項來影響正常的 MySQL 路由器作業。有兩種 connect_timeout 變體。中繼資料伺服器變體在
[DEFAULT]命名空間下定義,而 MySQL 伺服器變體則在[routing]命名空間下定義。 -
--user {、使用者名稱|使用者 ID}-u {使用者名稱|使用者 ID}命令列格式 --user {使用者名稱|使用者 ID},-u {使用者名稱|使用者 ID}平台特定 Linux 類型 字串 以具有名稱
使用者名稱或數字使用者 ID使用者 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 機制,而是根據已知的 validate_password 預設設定產生並使用「強」密碼。這是因為 validate_password 可由使用者設定,而 Router 無法考量不尋常的自訂設定。
此選項確保不會針對產生的密碼略過密碼驗證 (validate_password),且預設為停用。
-
--password-retriesnum_retries命令列格式 --password-retries num_retries類型 整數 預設值 20最小值 1最大值 10000指定使用密碼驗證規則建立使用者帳戶時,MySQL Router 應嘗試產生密碼的次數。預設值為 20。有效範圍為 1 到 10000。
失敗最可能的原因是自訂 validate_password 設定具有不尋常的要求,例如最少 50 個字元。在該失敗情況下,很可能將
--force-password-validation設定為 true。 -
命令列格式 --force強制對主機上先前設定的路由器執行個體重新設定。
-
命令列格式 --ssl-mode mode類型 字串 預設值 PREFERRED有效值 PREFERREDDISABLEDREQUIREDVERIFY_CAVERIFY_IDENTITY在引導程序期間和連線至中繼資料伺服器時正常運作時使用的 SSL 連線模式。類似於
--ssl-mode在 mysql 用戶端中的使用方式。在引導程序期間,Router 建立的所有中繼資料伺服器連線都會使用指定的 SSL 選項。如果組態中未指定
ssl_mode,則會預設為 PREFERRED。在 Router 啟動後的正常運作期間,其中繼資料快取外掛程式會讀取並遵循所有已設定的 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有效值 PREFERREDDISABLEDPASSTHROUGHREQUIRED在引導程序期間和 MySQL Router 與用戶端之間連線時正常運作時使用的 SSL 連線模式。
在引導程序期間,Router 建立的所有用戶端連線都會使用指定的 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 參數。以 PEM 格式格式化 DH 參數檔案。
-
命令列格式 --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_CLIENTDISABLEDPREFERREDREQUIRED在引導程序期間和 MySQL Router 與伺服器之間連線時正常運作時使用的 SSL 連線模式。
在啟動過程中,Router 對伺服器所建立的所有連線都會使用指定的 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有效值 DISABLEDVERIFY_CAVERIFY_IDENTITY驗證伺服器向路由器呈現的 SSL 憑證
DISABLED:如果伺服器在交握過程中未提供憑證,連線會失敗。VERIFY_CA:如果伺服器的憑證與 MySQL Router 信任的 CA 不符,連線會失敗。VERIFY_IDENTITY:如果伺服器的憑證與 MySQL Router 信任的 CA 不符,或伺服器憑證的主旨與 MySQL Router 連線的主機名稱或 IP 位址不符,連線會失敗。
-
--config、file_path-cfile_path命令列格式 --config file_path, -c file_path用於提供要使用的組態檔的路徑和檔名。如果您想要使用位於預設位置以外資料夾中的組態檔,請使用此選項。
當與
--bootstrap一起使用時,如果組態檔已存在,則當產生的組態檔內容與原始檔案不同時,會將目前檔案的副本儲存為具有 .bak 副檔名的檔案。現有的 .bak 檔案會被覆寫。 -
--extra-config、file_path-afile_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 將 Router 作為 Windows 服務啟動。這是一個私有選項,表示它僅供 Windows 服務在將 Router 作為服務啟動時使用。
此選項僅在 Windows 上可用。
-
命令列格式 --update-credentials-section section_name平台特定 Windows 此選項僅在 Windows 上可用,並參照其密碼保存庫。
-
命令列格式 --conf-target-cluster value類型 字串 有效值 currentprimary設定
target_cluster中繼資料 MySQL Router 選項。接受下列字串之一-
current:將target_cluster設定為包含正在啟動的節點的叢集。它將其定義為叢集的 UUID 值。如果這也是主要叢集,它不會像
primary一樣動態追蹤角色變更;相反地,它會保持靜態。 primary:將target_cluster設定為主要叢集,包括在執行階段變更時。
另請參閱
--config-target-cluster-by-name,它會將target_cluster設定為特定的靜態叢集名稱。注意針對 ClusterSet 啟動需要將
cluster_typeRouter 組態選項設定為 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-sectionsection_name命令列格式 --remove-credentials-section section_name平台特定 Windows 移除指定區段的認證。
此選項僅在 Windows 上可用,並參照其密碼保存庫。
-
命令列格式 --clear-all-credentials平台特定 Windows 透過移除其中儲存的所有認證來清除密碼保存庫。
此選項僅在 Windows 上可用,並參照其密碼保存庫。
-
命令列格式 --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。不會檢查連接埠是否可用。