13.1.17 CREATE SERVER 语句

CREATE SERVER server_name
    FOREIGN DATA WRAPPER wrapper_name
    OPTIONS (option [, option] ...)

option: {
    HOST character-literal
  | DATABASE character-literal
  | USER character-literal
  | PASSWORD character-literal
  | SOCKET character-literal
  | OWNER character-literal
  | PORT numeric-literal
}

该语句创建用于FEDERATED存储引擎的服务器的定义。 CREATE SERVER语句在mysql数据库的serverstable 中创建新行。此语句需要SUPER特权。

server_name应该是服务器的唯一引用。服务器定义在服务器范围内是全局的,因此无法将服务器定义限定为特定的数据库。 server_name的最大长度为 64 个字符(长于 64 个字符的名称会被自动截断),并且不区分大小写。您可以将名称指定为带引号的字符串。

wrapper_name是一个标识符,可以用单引号引起来。

对于每个option,您必须指定字符 Literals 或数字 Literals。字符 Literals 为 UTF-8,最大长度为 64 个字符,默认为空白(空)字符串。字符串 Literals 被静默地截断为 64 个字符。数字 Literals 必须是 0 到 9999 之间的数字,默认值为 0.

Note

OWNER选项当前未应用,并且对创建的服务器连接的所有权或操作没有影响。

CREATE SERVER语句在mysql.serverstable 中创建一个条目,以后可在创建FEDERATEDtable 时与CREATE TABLE语句一起使用。您指定的选项将用于填充mysql.serverstable 中的列。table 格列是Server_nameHostDbUsernamePasswordPortSocket

For example:

CREATE SERVER s
FOREIGN DATA WRAPPER mysql
OPTIONS (USER 'Remote', HOST '198.51.100.106', DATABASE 'test');

确保指定与服务器构建连接所需的所有选项。用户名,主机名和数据库名是必需的。可能还需要其他选项,例如密码。

创建与FEDERATEDtable 的连接时可以使用 table 中存储的数据:

CREATE TABLE t (s1 INT) ENGINE=FEDERATED CONNECTION='s';

有关更多信息,请参见第 15.8 节“联邦存储引擎”

CREATE SERVER导致隐式提交。参见第 13.3.3 节“导致隐式提交的声明”

不管使用哪种日志记录格式,都不会将CREATE SERVER写入二进制日志。