MySQL 8.4 Release Notes
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] ...)
在创建新FEDERATED
表时,使用的server_name
是在连接字符串中。
例如,创建一个与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
表中的列对应关系。参考连接字符串的格式如下:
scheme://user_name[:password]@host_name[:port_num]/db_name/tbl_name
Description | CONNECTION string |
CREATE SERVER option |
mysql.servers column |
---|---|---|---|
Connection scheme | scheme |
wrapper_name |
Wrapper |
Remote user | user_name |
USER |
Username |
Remote password | password |
PASSWORD |
Password |
Remote host | host_name |
HOST |
Host |
Remote port | port_num |
PORT |
端口 |
Remote database | db_name |
数据库 |
Db |