MySQL 8.0 リファレンスマニュアル


13.1.18 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_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 '198.51.100.106', DATABASE 'test');

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

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

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

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

CREATE SERVER によって暗黙的なコミットが発生します。 セクション13.3.3「暗黙的なコミットを発生させるステートメント」を参照してください。

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


関連キーワード:  ステートメント, CREATE, TABLE, DROP, サーバー, SERVER, サブクエリー, テーブル, FUNCTION, SLAVE