如何創(chuàng)建Federated表
本文介紹了在PolarDB MySQL版中如何創(chuàng)建Federated表。
前提條件
集群版本需為PolarDB MySQL版8.0版本且修訂版本需滿足如下條件:
8.0.1.1.28或以上。
8.0.2.2.4或以上。
如何查看集群版本,請(qǐng)參見查詢版本號(hào)。
使用限制
目前僅支持使用公網(wǎng)地址連接遠(yuǎn)端服務(wù)器的數(shù)據(jù)庫(kù)。
不支持遠(yuǎn)程連接在ECS上自建的數(shù)據(jù)庫(kù)。
不支持Federated引擎使用公網(wǎng)地址訪問當(dāng)前集群的數(shù)據(jù)庫(kù)。
操作步驟
創(chuàng)建遠(yuǎn)端Server。語(yǔ)法如下:
CREATE SERVER <server_name> FOREIGN DATA WRAPPER mysql OPTIONS (HOST "<host_name>", PORT 3306, USER "<user_name>", PASSWORD "<password>", DATABASE "<db_name>");
參數(shù)說(shuō)明如下表所示:
參數(shù)名稱
參數(shù)說(shuō)明
server_name
遠(yuǎn)端服務(wù)器名稱。
host_name
遠(yuǎn)程服務(wù)器的主機(jī)名或IP地址。
user_name
遠(yuǎn)程服務(wù)器上創(chuàng)建的用戶名。
password
遠(yuǎn)程服務(wù)器上用戶名對(duì)應(yīng)的密碼。
db_name
遠(yuǎn)程服務(wù)器上創(chuàng)建的數(shù)據(jù)庫(kù)名稱。
創(chuàng)建Federated表。
您可以通過三段式名稱方式、指定遠(yuǎn)端Server或Connection來(lái)連接到遠(yuǎn)程表創(chuàng)建Federated表。
(推薦)通過三段式名稱方式來(lái)創(chuàng)建Federated表。語(yǔ)法如下:
CREATE FOREIGN TABLE tbl_name for <server_name>.<remote_db_name>.<tbl_name>;
示例如下:
CREATE FOREIGN TABLE t1 for server.test.t1;
通過指定遠(yuǎn)端Server來(lái)創(chuàng)建Federated表。語(yǔ)法如下:
CREATE TABLE <tbl_name> (create_definition,...) ENGINE=FEDERATED CONNECTION='<server_name>/<tbl_name>';
示例如下:
CREATE TABLE `t1`(`a` VARCHAR(100),UNIQUE KEY(`a`(30))) ENGINE=FEDERATED CONNECTION='server_name/t1';
(不推薦)通過指定Connection來(lái)創(chuàng)建Federated表。語(yǔ)法如下:
CREATE TABLE <tbl_name> (create_definition,...) ENGINE=FEDERATED CONNECTION='<MYSQL://<user_name>:<password>@<host_name>:3306/<db_name>/<tbl_name>';
示例如下:
CREATE TABLE `t1`(`a` VARCHAR(100),UNIQUE KEY(`a`(30))) ENGINE=FEDERATED CONNECTION='MYSQL://username:passsword@127.0.0.1:3306/test/t1';
說(shuō)明由于指定Connection來(lái)創(chuàng)建Federated表的方式中,相關(guān)賬號(hào)和密碼是明文保存,因此不建議使用該方式。