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


16.8.2.1 CONNECTION を使用した FEDERATED テーブルの作成

最初の方法を使用するには、CREATE TABLE ステートメントのエンジンタイプの後ろに CONNECTION 文字列を指定する必要があります。 例:

CREATE TABLE federated_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=utf8mb4
CONNECTION='mysql://fed_user@remote_host:9306/federated/test_table';
注記

CONNECTION は MySQL の以前のバージョンで使われた COMMENT を置き換えるものです。

CONNECTION 文字列には、データが物理的に存在するテーブルを含むリモートサーバーへの接続に必要な情報が含まれます。 接続文字列には、サーバー名、ログイン資格証明、ポート番号、およびデータベース/テーブル情報を指定します。 この例では、リモートテーブルはサーバー remote_host 上にあり、ポート 9306 を使用します。 名前とポート番号は、リモートテーブルとして使用するリモート MySQL サーバーのホスト名 (または IP アドレス) とポート番号に一致するべきです。

接続文字列の書式は次のとおりです。

scheme://user_name[:password]@host_name[:port_num]/db_name/tbl_name

ここでは:

  • scheme: 認識された接続プロトコル。 この時点では、mysql だけが scheme 値としてサポートされています。

  • user_name: 接続のためのユーザー名。 このユーザーは、リモートサーバー上に作成されている必要があり、リモートテーブルで必要なアクション (SELECTINSERTUPDATE など) を実行するのに適した権限を持つ必要があります。

  • password: (オプション) user_name に対応するパスワード。

  • host_name: リモートサーバーのホスト名または IP アドレス。

  • port_num: (オプション) リモートサーバーのポート番号。 デフォルトは 3306 です。

  • db_name: リモートテーブルを保持するデータベースの名前。

  • tbl_name: リモートテーブルの名前。 ローカルテーブルとリモートテーブルの名前が一致する必要はありません。

接続文字列の例は次のとおりです。

CONNECTION='mysql://username:password@hostname:port/database/tablename'
CONNECTION='mysql://username@hostname/database/tablename'
CONNECTION='mysql://username:password@hostname/database/tablename'

関連キーワード:  テーブル, ストレージ, エンジン, FEDERATED, リモート, CONNECTION, サーバー, 作成, 接続, ポート