ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

MySQLで他マシン上のデータベースにあるテーブルを、自分のデータベース内テーブルとする

2012-06-13 14:57:51 | そのほか
例えばMySQLで、

東京にあるマシンのデータベース名kaikei
に会計関連のテーブルがいっぱいあったとする(toriki_TBL,URIAGE_TBLなど)。

で、大阪に営業支社があり、
大阪にあるマシンのデータベース名eikyo_o
に営業関連のテーブルがいっぱいあったとする。

東京にあるマシンのデータベース名kaikeiにあるテーブルと
大阪にあるマシンのデータベース名eigyo_oにあるテーブルを
JOINしてみたいという場合。

物理的に離れた、ほかのデータベースでも、MySQLなら、
インターネットでつながって、権限があるのなら、OKらしい。

Federatedeエンジンというのがあって、これを使うと、リモートのテーブルが
あたかもローカルのテーブルのように仮想的に扱えるらしい。

詳しくは

Federatedエンジンとは
http://thinkit.co.jp/free/article/0608/1/5/

具体的には

1.my.iniにあるskip-federetedをコメントにして
federeted
  に書き換える

2.テーブルを作る際、CREATE TABLEで、
  ENGINE=FEDERATED
  CONNECTION='mysql://fed_user@remote_host:9306/federated/test_table';
  のように、Federatedエンジンを指定して、CONNECTIONにコネクション先を書く。

コネクション先の詳しい書き方は

13.9.2.1. CONNECTIONを利用して FEDERATED テーブルを作成する
http://dev.mysql.com/doc/refman/5.1/ja/federated-create-connection.html

を参照。


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする