相关文档 下载本手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
信息 (Gzip) - 4.0Mb
信息 (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  ...  /  使用 CREATE SERVER 创建 FEDERATED 表

18.8.2.2 使用 CREATE SERVER 创建 FEDERATED 表

如果您要在同一服务器上创建多个 FEDERATED 表,或者想要简化创建 FEDERATED 表的过程,可以使用 CREATE SERVER 语句定义服务器连接参数,就像使用 CONNECTION 字符串一样。

CREATE SERVER 语句的格式为:

CREATE SERVER
server_name
FOREIGN DATA WRAPPER wrapper_name
OPTIONS (option [, option] ...)

server_name 用于在创建新的 FEDERATED 表时在连接字符串中使用。

例如,要创建一个与以下 CONNECTION 字符串相同的服务器连接:

CONNECTION='mysql://fed_user@remote_host:9306/federated/test_table';

您将使用以下语句:

CREATE SERVER fedlink
FOREIGN DATA WRAPPER mysql
OPTIONS (USER 'fed_user', HOST 'remote_host', PORT 9306, DATABASE 'federated');

要创建一个使用此连接的 FEDERATED 表,您仍然使用 CONNECTION 关键字,但指定在 CREATE SERVER 语句中使用的名称。

CREATE TABLE test_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=utf8mb4
CONNECTION='fedlink/test_table';

此示例中的连接名称包含连接名称 (fedlink) 和要链接到的表名称 (test_table),用斜杠分隔。如果仅指定连接名称而不指定表名称,则将使用本地表的表名称。

有关 CREATE SERVER 的更多信息,请参阅第 15.1.18 节 “CREATE SERVER 语句”

CREATE SERVER 语句接受与 CONNECTION 字符串相同的参数。CREATE SERVER 语句会更新 mysql.servers 表中的行。有关连接字符串中的参数、CREATE SERVER 语句中的选项以及 mysql.servers 表中的列之间的对应关系的信息,请参阅下表。作为参考,CONNECTION 字符串的格式如下:

scheme://user_name[:password]@host_name[:port_num]/db_name/tbl_name
描述 CONNECTION 字符串 CREATE SERVER 选项 mysql.servers
连接方案 scheme wrapper_name 包装器
远程用户 user_name USER 用户名
远程密码 password PASSWORD 密码
远程主机 host_name HOST 主机
远程端口 port_num PORT 端口
远程数据库 db_name DATABASE 数据库