首頁 >資料庫 >mysql教程 >如何使用聯合表和 SSH 隧道執行跨伺服器 MySQL SELECT 查詢?

如何使用聯合表和 SSH 隧道執行跨伺服器 MySQL SELECT 查詢?

Patricia Arquette
Patricia Arquette原創
2024-12-01 13:31:12790瀏覽

How Can I Perform Cross-Server MySQL SELECT Queries Using Federated Tables and SSH Tunnels?

透過SSH 隧道和聯合表進行MySQL 跨伺服器選擇查詢

使用MySQL 執行跨伺服器選擇查詢,這是一種常見的查詢方法是在其中一台伺服器上建立聯合表。透過基於遠端表建立聯邦表,您可以像查詢本機資料一樣查詢資料。

步驟:

  1. 建立 SSH 隧道連接兩個伺服器。
  2. 在遠端伺服器上定義一個表。
  3. 建立本機伺服器上指向遠端資料表的聯合表。使用下列語法:
CREATE TABLE federated_table (
    id     INT(20) NOT NULL AUTO_INCREMENT,
    name   VARCHAR(32) NOT NULL DEFAULT '',
    other  INT(20) NOT NULL DEFAULT '0',
    PRIMARY KEY  (id),
    INDEX name (name),
    INDEX other_key (other)
)
ENGINE=FEDERATED
DEFAULT CHARSET=latin1
CONNECTION='mysql://fed_user@remote_host:9306/federated/test_table';
  1. 建立聯合表後,您可以像查詢本機表一樣進行查詢。聯合表將透明地處理與遠端伺服器的通訊。

範例:

考慮以下設定:

Server IP Database
1.2.3.4 Test
a.b.c.d Test

您可以在伺服器1.2.3.4 上建立聯合表來存取伺服器a.b.c.d上的表,使用以下查詢:

CREATE TABLE federated_table (
    id     INT(20) NOT NULL AUTO_INCREMENT,
    name   VARCHAR(32) NOT NULL DEFAULT '',
    other  INT(20) NOT NULL DEFAULT '0',
    PRIMARY KEY  (id),
    INDEX name (name),
    INDEX other_key (other)
)
ENGINE=FEDERATED
DEFAULT CHARSET=latin1
CONNECTION='mysql://fed_user@a.b.c.d:9306/Test/test_table';

建立聯合表後,您可以如下查詢它:

SELECT * FROM federated_table;

此查詢將從伺服器a.b.c.d 上的test_table 表中檢索行

以上是如何使用聯合表和 SSH 隧道執行跨伺服器 MySQL SELECT 查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn