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 数据库的 servers 表中创建一行新记录。此语句需要 SUPER 权限。
应该是服务器的唯一引用。服务器定义在服务器范围内是全局的,无法将服务器定义限定到特定数据库。 server_name 的最大长度为 64 个字符(超过 64 个字符的名称会静默截断),且不区分大小写。您可以将名称指定为带引号的字符串。server_name
是一个标识符,可以使用单引号括起来。wrapper_name
对于每个 ,您必须指定一个字符文字或数字文字。字符文字为 UTF-8,支持最大长度为 64 个字符,默认为空(空)字符串。字符串文字会静默截断为 64 个字符。数字文字必须是 0 到 9999 之间的数字,默认值为 0。option
OWNER 选项当前未应用,并且对创建的服务器连接的拥有权或操作没有影响。
CREATE SERVER 语句在 mysql.servers 表中创建一个条目,该条目稍后可与 CREATE TABLE 语句一起使用,用于创建 FEDERATED 表。您指定的选项用于填充 mysql.servers 表中的列。表列为 Server_name、Host、Db、Username、Password、Port 和 Socket。
例如
CREATE SERVER s
FOREIGN DATA WRAPPER mysql
OPTIONS (USER 'Remote', HOST '198.51.100.106', DATABASE 'test');确保指定建立与服务器连接所需的所有选项。用户名、主机名和数据库名称是必需的。其他选项也可能需要,例如密码。
表中存储的数据可用于创建与 FEDERATED 表的连接。
CREATE TABLE t (s1 INT) ENGINE=FEDERATED CONNECTION='s';有关更多信息,请参见 第 18.8 节,“FEDERATED 存储引擎”。
CREATE SERVER 会导致隐式提交。请参见 第 15.3.3 节,“导致隐式提交的语句”。
无论使用哪种日志记录格式,CREATE SERVER 都不会写入二进制日志。