MySQL Router 9.0  /  MySQL Router 應用程式  /  啟動 MySQL Router

5.1 啟動 MySQL Router

MySQL Router 需要組態檔案。雖然 Router 會在預先定義的預設路徑清單中搜尋組態檔案,但通常會透過傳遞帶有 --config 選項的組態檔案來啟動 Router。

設定 MySQL Router 以在主機重新啟動時自動啟動的程序,類似於 MySQL Server 所需的步驟,這在自動啟動和停止 MySQL 中有說明。

例如,當使用 systemd

$> sudo systemctl start mysqlrouter.service
$> sudo systemctl enable mysqlrouter.service

範例記錄輸出

啟動 MySQL Router 會產生多個記錄項目,例如當連接到沙箱 InnoDB Cluster 時

$> mysqlrouter --config=/path/to/file/my_router.conf
^C

$> less /path/to/log/mysqlrouter.log
2019-04-07 16:30:49 INFO    [0x7000022fc000] [routing:devCluster_default_ro] started: listening on 0.0.0.0:6447; read-only
2019-04-07 16:30:49 INFO    [0x70000237f000] [routing:devCluster_default_rw] started: listening on 0.0.0.0:6446; read-write
2019-04-07 16:30:49 INFO    [0x700002402000] [routing:devCluster_default_x_ro] started: listening on 0.0.0.0:64470; read-only
2019-04-07 16:30:49 INFO    [0x700002485000] [routing:devCluster_default_x_rw] started: listening on 0.0.0.0:64460; read-write
2019-04-07 16:30:49 INFO    [0x700002279000] Starting Metadata Cache
2019-04-07 16:30:49 INFO    [0x700002279000] Connections using ssl_mode 'PREFERRED'
2019-04-07 16:30:49 INFO    [0x700002279000] Connected with metadata server running on 127.0.0.1:3310
2019-04-07 16:30:49 INFO    [0x700002279000] Changes detected in cluster 'devCluster' after metadata refresh
2019-04-07 16:30:49 INFO    [0x700002279000] Metadata for cluster 'devCluster' has 1 replicasets:
2019-04-07 16:30:49 INFO    [0x700002279000] 'default' (3 members, single-master)
2019-04-07 16:30:49 INFO    [0x700002714000] Connected with metadata server running on 127.0.0.1:3310

記錄顯示 MySQL Router 正在監聽四個連接埠、按名稱列出作用中的路由策略、InnoDB Cluster 資訊等等。

例如,第一行列出名為 routing:devCluster_default_ro 的作用中路由策略,正在監聽連接埠 6447,其模式為 read-only。MySQL Router 組態檔案中對應的章節看起來類似於

[routing:devCluster_default_ro]
bind_address=0.0.0.0
bind_port=6447
destinations=metadata-cache://devCluster/default?role=SECONDARY
protocol=classic

請參閱名稱和連接埠是如何直接從組態檔案中取得的。透過這種方式,您可以快速判斷哪些路由策略處於作用中。如果執行多個 MySQL Router 執行個體,或載入多個組態檔案,這可能會特別有用。

在 Windows 上,MySQL Router 可以安裝、移除或啟動服務。預設情況下,服務名稱為 MySQLRouter。如需更多資訊,請參閱 Windows 服務的 --service 和相關命令列選項。

範例啟動和停止指令碼

使用 --directory 選項啟動 MySQL Router 會產生 bash 指令碼來啟動和停止 MySQL Router,這些指令碼看起來類似於下列內容

// *** start.sh *********************** //

#!/bin/bash
basedir=/opt/myrouter
ROUTER_PID=$basedir/mysqlrouter.pid /usr/bin/mysqlrouter -c $basedir/mysqlrouter.conf &
disown %-

// *** stop.sh *********************** //

if [ -f /opt/myrouter/mysqlrouter.pid ]; then
  kill -HUP `cat /opt/myrouter/mysqlrouter.pid`
  rm -f /opt/myrouter/mysqlrouter.pid
fi