Documentation Home
MySQL 8.0 参考手册  / 第 16 章替代存储引擎  / 16.8 联合存储引擎  / 16.8.2 如何创建 FEDERATED 表  /  16.8.2.2 使用 CREATE SERVER 创建 FEDERATED 表

16.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,请参阅第 13.1.18 节,“CREATE SERVER 语句”

该语句接受与 字符串CREATE SERVER相同的参数。CONNECTIONCREATE 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 Wrapper
远程用户 user_name USER Username
远程密码 password PASSWORD Password
远程主机 host_name HOST Host
远程端口 port_num PORT Port
远程数据库 db_name DATABASE Db