文件首頁
MySQL Shell for VS Code


MySQL Shell for VS Code  /  MySQL Shell 主控台  /  MySQL Shell、MySQL Router 和 InnoDB Cluster

預先公開發布:2024-07-17

5.9 MySQL Shell、MySQL Router 和 InnoDB Cluster

MySQL Router 是高可用性 (HA) 解決方案的建構區塊。它透過智慧型地將連線路由至 MySQL 伺服器,以提高效能和可靠性,從而簡化應用程式開發。

MySQL Router 是 InnoDB Cluster 的一部分,是一種輕量型中介軟體,可在您的應用程式和後端 MySQL 伺服器之間提供透明的路由。它用於各種不同的使用案例,例如透過將資料庫流量路由至適當的後端 MySQL 伺服器來提供高可用性和可擴展性。可插拔架構也讓開發人員能夠擴充 MySQL Router 以用於自訂使用案例。

MySQL Group Replication 會跨多部伺服器複寫資料庫,同時在伺服器故障時執行自動容錯移轉。當與 InnoDB Cluster 一起使用時,MySQL Router 會作為 Proxy 來隱藏您網路上的多個 MySQL 執行個體,並將資料請求對應至其中一個叢集執行個體。只要有足夠的線上複本且元件之間的通訊完好無損,應用程式就能夠聯絡其中一個複本。MySQL Router 也透過讓應用程式連線至 MySQL Router,而不是直接連線至 MySQL,來實現此目的。

測試 MySQL Router 設定

當您設定 InnoDB Cluster 並讓 MySQL Router 執行時,您可以使用 MySQL Shell 主控台來測試 InnoDB Cluster 和 MySQL Router 的設定。

依預設,可以透過連線至以下項目來存取 InnoDB Cluster

  • 傳統 MySQL 通訊協定

    • 讀取/寫入連線:執行個體位址:連接埠 6446

    • 唯讀連線:執行個體位址:連接埠 6447

  • X 通訊協定

    • 讀取/寫入連線:執行個體位址:連接埠 6448

    • 唯讀連線:執行個體位址:連接埠 6449

不要直接連線至其中一個 MySQL 伺服器執行個體,而是透過 MySQL Router 連線。

  1. 發出下列連線命令,其中使用者是 demo-user,而執行個體的位址是 demo-instance,並且正在使用傳統 MySQL 通訊協定

    shell.connect ('demo-user@demo-instance:6446')
  2. 提供 root 密碼以連線至 InnoDB Cluster。

  3. 藉由建立變數 cluster 並將其指派為 dba.getCluster() JavaScript 方法的值,來檢查 InnoDB Cluster 的狀態

    cluster = dba.getCluster()
    cluster.status()
  4. 切換至 SQL 模式

    \sql
  5. 藉由發出下列命令,查詢執行個體正在執行的連接埠

    SELECT @@port; 
    +--------+
    | @@port |
    +--------+
    |   3310 |
    +--------+
    1 row in set (0.0007 sec)

    在此範例中,InnoDB Cluster 正在連接埠 3310 上執行,因此 MySQL Router 已正確設定並順利執行。