最初の方法を使うには、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=latin1
CONNECTION='mysql://fed_user@remote_host:9306/federated/test_table';
CONNECTION
はMySQLの以前のバージョンで使われた
COMMENT を置き換えます。
CONNECTION 文字列は
データを物質的に格納する為に利用されるテーブルを含む、リモートサーバに接続する為に要求される情報を含んでいます。接続文字列は、サーバ名、ログイン実績、ポート番号、そしてデータベースとテーブルの情報を指定します。
例の中では、リモートテーブルはポート9306を利用しているサーバ
remote_host
上にあります。名前とポート番号は、リモートテーブルとして利用するリモートMySQLサーバインスタンスのホスト名(またはIPアドレス)とポート番号に適合する必要があります。
接続文字列のフォーマットは次のようになります。
scheme://user_name[:password]@host_name[:port_num]/db_name/tbl_name
場所:
scheme —
は認識された接続プロトコルです。この時点では、
mysql だけが
scheme
値としてサポートされています。
user_name —
接続用のユーザ名です。このユーザはリモートサーバ上に作成されなければいけません。そして、リモートテーブル上で要求された処理(SELECT,
INSERT, UPDATE
etc.)を行うために適切な権限を持つ必要があります。
password — (任意)
usernameに対応するパスワード
host_name —
リモートサーバのホスト名、またはIPアドレス
port_num — (任意)
リモートサーバのポート番号。デフォルトは3306です。
db_name —
リモートテーブルを保有するデータベースの名前。
table_name —
リモートテーブルの名前。ローカルテーブルとリモートテーブルの名前は一致する必要はありません。
接続文字列の例
CONNECTION='mysql://username:password@hostname:port/database/tablename' CONNECTION='mysql://username@hostname/database/tablename' CONNECTION='mysql://username:password@hostname/database/tablename'
