Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  ...  /  Creating a FEDERATED Table Using CONNECTION

18.8.2.1 使用 CONNECTION 创建 FEDERATED 表

要使用第一个方法,您必须在CREATE TABLE语句中指定CONNECTION字符串。例如:

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=utf8mb4
CONNECTION='mysql://fed_user@remote_host:9306/federated/test_table';
Note

CONNECTION 替换了 MySQL 的某些前版本中的 COMMENT

The 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:远程表的名称。local和remote表名不需要相同。

示例连接字符串:

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