最初の方法を使用するには、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
: 接続のためのユーザー名。 このユーザーは、リモートサーバー上に作成されている必要があり、リモートテーブルで必要なアクション (SELECT
、INSERT
、UPDATE
など) を実行するのに適した権限を持つ必要があります。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'