如果您在同一台服务器上创建多个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=latin1
CONNECTION='fedlink/test_table';
此示例中的连接名称包含连接的名称 ( fedlink) 和要链接到的表的名称 ( test_table),以斜杠分隔。如果只指定连接名而没有指定表名,则使用本地表的表名。
有关更多信息CREATE
SERVER,请参阅第 13.1.17 节,“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 |
Wrapper |
| 远程用户 | user_name |
USER |
Username |
| 远程密码 | password |
PASSWORD |
Password |
| 远程主机 | host_name |
HOST |
Host |
| 远程端口 | port_num |
PORT |
Port |
| 远程数据库 | db_name |
DATABASE |
Db |