13.1.16 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 データベース内の servers テーブルに新しい行を作成します。このステートメントには、SUPER 権限が必要です。

server_name は、そのサーバーへの一意の参照にしてください。サーバー定義は、そのサーバーのスコープ内ではグローバルであるため、サーバー定義を特定のデータベースに対して修飾することはできません。server_name の最大長は 64 文字であり (64 文字より長い名前は暗黙のうちに切り捨てられます)、大文字小文字を区別しません。この名前は、引用符で囲まれた文字列として指定できます。

wrapper_namemysql にしてください。また、それを単一引用符で囲むことができます。wrapper_name に対するその他の値は現在、サポートされていません。

option について、文字リテラルまたは数値リテラルのどちらかを指定する必要があります。文字リテラルは UTF-8 であり、64 文字の最大長をサポートし、デフォルトではブランク (空) の文字列になります。文字列リテラルは、暗黙のうちに 64 文字に切り捨てられます。数値リテラルは 0 から 9999 までの数字である必要があり、デフォルト値は 0 です。

注記

OWNER オプションは現在、適用されず、作成されるサーバー接続の所有権または操作には影響を与えません。

CREATE SERVER ステートメントは、mysql.servers テーブル内にエントリを作成します。これは、あとで FEDERATED テーブルを作成するときに CREATE TABLE ステートメントで使用できます。指定したオプションは、mysql.servers テーブル内のカラムを移入するために使用されます。テーブルカラムは、Server_nameHostDbUsernamePasswordPort、および Socket です。

例:

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

サーバーへの接続を確立するために必要なすべてのオプションを指定する必要があります。ユーザー名、ホスト名、およびデータベース名は必須です。パスワードなどの、その他のオプションも必要になる可能性があります。

このテーブルに格納されたデータは、FEDERATED テーブルへの接続を作成するときに使用できます。

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

詳細は、セクション15.8「FEDERATED ストレージエンジン」を参照してください。

CREATE SERVER では、自動コミットが実行されます。

MySQL 5.6 では、使用されているロギング形式には関係なく、CREATE SERVER はバイナリログに書き込まれません。

MySQL 5.6.11 でのみ、このステートメントを発行する前に、gtid_nextAUTOMATIC に設定する必要があります。(Bug #16062608、Bug #16715809、Bug #69045)


User Comments
  Posted by ALEXANDER SKAKUNOV on January 8, 2013
We use this in our project http://api-architecture.com/ - it's very nice for deployment since you can create a server this way and then use the federated tables - which are the same as symlinks in Linux so you can avoid copying the same data between projects (for example, Geo tables).
Sign Up Login You must be logged in to post a comment.