別サーバのテーブルを参照する

同一サーバの別データベースのテーブルの参照

同一サーバの別データベースのテーブルは、 SELECT * FROM foo_db.table1 のようにして参照出来る。

別サーバの別データベースのテーブルの参照

別サーバの別データベースのテーブルでは上のようには出来ない。当該データベースに参照したいテーブルのコピーを作る必要がある。その方法は、レプリケーションで当該データベースをスレーブにするか、FEDERATEDエンジンを使って当該データベースにFEDERATEDテーブルを作るか、いずれか。

FEDERATEDテーブルの作り方

参照したいテーブルが、ホスト192.168.0.1上のfoo_dbデータベースのusersテーブルだとすると、以下のようなSQLで当該データベースにusersテーブルを作成する。

 CREATE TABLE `users` (
   `user_id` int(11) NOT NULL AUTO_INCREMENT,
   `user_name` text,
   PRIMARY KEY (`user_id`)
 ) 
 ENGINE=FEDERATED  
 DEFAULT CHARSET=utf8 
 CONNECTION='mysql://db_user:db_pass@192.168.0.1/foo_db/users';

FEDERATEDエンジンがサポートされているか?を確認

 SHOW ENGINES;

参考


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2011-09-02 (金) 15:31:05