首頁 >資料庫 >mysql教程 >如何連接不同MySQL伺服器上的表?

如何連接不同MySQL伺服器上的表?

DDD
DDD原創
2024-12-18 12:30:11887瀏覽

How Can I Join Tables Across Different MySQL Servers?

在MySQL 中連接來自不同伺服器的表

嘗試連接來自兩個不同伺服器(server1 和server2)的表可能會遇到錯誤。以下是使用MySQL 的FEDERATED ENGINE 克服這項挑戰的方法:

使用聯合表

要彌合伺服器之間的差距,請基於遠端表建立一個聯合表。兩個表的結構必須保持相同。

範例程式碼:

以名為 test_table 為基礎的遠端表建立名為 federated_table 的聯合表:

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';

透過建立聯合連接,您可以跨伺服器連接表,就像它們一樣local:

SELECT a.field1, b.field2
FROM federated_table AS a
INNER JOIN [server2, 3312].[db2].table2 AS b
ON a.field1 = b.field2;

注意: fed_user 帳戶必須在兩台伺服器上擁有適當的權限才能建立聯合連線。

以上是如何連接不同MySQL伺服器上的表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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