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

15.8.2.1 使用 CONNECTION 创建 FEDERATED 表

要使用第一种方法,您必须 在语句中指定CONNECTION引擎类型后的字符串 。CREATE 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';
笔记

CONNECTION取代了 COMMENT一些以前版本的 MySQL 中使用的。

CONNECTION字符串包含连接到包含用于提供数据物理存储的表的远程服务器所需的信息。连接字符串指定服务器名称、登录凭据、端口号和数据库/表信息。在示例中,远程表位于服务器上 remote_host,使用端口 9306。名称和端口号应与要用作远程表的远程 MySQL 服务器实例的主机名(或 IP 地址)和端口号相匹配。

连接字符串的格式如下:

scheme://user_name[:password]@host_name[:port_num]/db_name/tbl_name

在哪里:

  • scheme: 公认的连接协议。此时仅mysql支持作为 scheme值。

  • user_name:连接的用户名。此用户必须已在远程服务器上创建,并且必须具有适当的权限才能在远程表上执行所需的操作(SELECTINSERTUPDATE等)。

  • password: (可选) 对应的密码 user_name

  • host_name: 远程服务器的主机名或 IP 地址。

  • port_num:(可选)远程服务器的端口号。默认值为 3306。

  • db_name:保存远程表的数据库的名称。

  • tbl_name:远程表的名称。本地和远程表的名称不必匹配。

示例连接字符串:

CONNECTION='mysql://username:password@hostname:port/database/tablename'
CONNECTION='mysql://username@hostname/database/tablename'
CONNECTION='mysql://username:password@hostname/database/tablename'