漫ろで行こう

自由気まま過ぎる、ギークになりたい男の子の話

© 1995-2008 MySQL AB, 2008-2009 Sun Microsystems, Inc.


そりゃ、5.0.3 から FEDERATED エンジンが実装されたので見れませんでした。おわり。

4.x 系で稼働している MySQL(DB-A) のデータを、新しく構築する 5.1.x 系(DB-B)にあるサマリーテーブルに格納して有効活用するという案件が浮上してきたため。
DB-B にある DB を DB-A 側から MS SQL Server のリンクサーバーのように扱いたいという。
元々は MS SQL Server から、ODBC 経由で DB-B の DB をリンクサーバーを利用して操作するつもりでいたのですが、今回 MySQL 4.x 系のデータも同様のように処理する(かもしれない)ということに。

DB-A から DB-B をリンクサーバーのように参照するには?と考えたところ浮上してきたのが FEDERATED エンジン。
要は何が言いたいかと言うと、5.x 系での FEDERATED エンジンの記事はいっぱいあるけど、異なるバージョン間での FEDERATED エンジンを利用した記事が全然なかったので、実際に試してみました的なメモ。
FEDERATED エンジン使うの初めてなの……。

1.構成

◆リモートサーバー(DB-A)
MySQL 4.1.15
◆ローカルサーバー(DB-B)
MySQL 5.1.38

DB-A 側では FEDERATED エンジンが利用できないので、DB-B 側でローカルサーバーとします。
よくある記事ではローカルだとかリモートだとか、実際触ってみなくちゃ良くわからんかったです。触ってみた感覚としては、DB-A を DB-B 側からマウントするようなイメージが一番しっくりきました。

2.DB-A のテーブル確認
リモート側(参照される側)のテーブルは以下のような感じで作られているとします。

CREATE TABLE `tbl_ServerStatus` (
  `CDate` timestamp NOT NULL default CURRENT_TIMESTAMP,
  `Status` enum(‘Up’,'Down’) default NULL,
  `Memo` varchar(255) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

3.DB-B での FEDERATED エンジン利用の設定
自分が利用した MySQL 5.1.38 では、デフォルトで FEDERATED エンジンが DISABLED になっているため、そのままでは利用できません。
my.conf に利用出来るようにするための設定を記述する必要があります。

[mysqld]
federated

4.DB-B から DB-A のテーブルへ接続する
既に DB-A に存在するテーブルへ接続します。
感覚的には枠を用意してあげてリンクさせる感じでしょうか。

CREATE TABLE `tbl_ServerStatus` (
  `CDate` timestamp NOT NULL default CURRENT_TIMESTAMP,
  `Status` enum(‘Up’,'Down’) default NULL,
  `Memo` varchar(255) default NULL
) ENGINE=FEDERATED DEFAULT CHARSET=utf8
CONNECTION=’mysql://[UserName]:[Password]@[RemoteIP]:3306/[DBName]/[TableName]‘;

最後の「CONNECTION」の箇所が重要です。
[UserName][Password]は MySQL のユーザー名とパスワードになります。
[DBName][TableName]は、DB が「Test」だとした場合、今回は「/Test/tbl_ServerStatus」になります。

以上、設定おわり。
実際に SELECT してデータを参照することが出来ました。また、INSERT, UPDATE, DELETE も問題なく反映されました。

official.MySQL :: 世界でもっとも普及している、オープン ソース データベース

Related Posts

  1. [MySQL][覚書]MySQL で利用可能なエンジン一覧
このエントリーをはてなブックマーク この記事をクリップ! このエントリーをdel.icio.usに追加

Leave a Reply

Get Adobe Flash playerPlugin by wpburn.com wordpress themes
Proudly powered by WordPress. Theme developed with WordPress Theme Generator.
Copyright © 漫ろで行こう. All rights reserved.