MaxDBのインストール
まずダウンロードするファイルを説明しよう。現在,製品版(安定版)7.5.0.5と評価版 (次期バージョン評価用)7.5.0.8Alphaがダウンロード可能だ。なお,MySQL proxyは,現在評価版のみである。
表1●ダウンロードすべきファイルの概要
バージョン | 内容 | OS | ファイル名 |
7.5.0.5 製品版 |
MaxDB本体 | Linux(x86) | maxdb-all-win-32bit-i386-7_5_0_5.zip |
Linux(IA64) | maxdb-all-linux-64bit-ia64-7_5_0_5.tgz | ||
Windows(x86) | maxdb-all-win-32bit-i386-7_5_0_5.zip | ||
Windows(IA64) | maxdb-all-win-64bit-ia64-7_5_0_5.zip | ||
他にもSun Solaris (Sparc, 64-bit)、HP-UX (HPPA, 64-bit)、IBM AIX 5(PowerPC, 64-bit)さらにソースコードが用意されている | |||
Database Manager | Windows | maxdb-dbmgui-setup-7_5_0_5.exe | |
SQL Studio | maxdb-sqlstudio-setup-7_5_0_5.exe | ||
7.5.0.8 | MaxDB本体 | Linux(x86) | maxdb-all-linux-32bit-i386-7_5_0_8alpha.tgz |
Windows(x86) | maxdb-all-win-32bit-i386-7_5_0_8alpha.zip | ||
MySQL proxy | Linux(x86) | MaxDBProxy-linux-i386-56864.tgz | |
Windows(x86) | MaxDBProxy-WinNT-56864.zip | ||
マニュアル | maxdb-htmldoc.zip |
MaxDBのインストールは,非常に簡単だ。また,LinuxでもWindowsでもほぼ同じ手順でインストールが可能だ。インストール手順を紹介しよう。
(1). MySQLのサイト(http://www.mysql.com)よりインストール用のファイルをダウンロードする。
(2). ダウンロードしたファイルを展開する。バイナリで提供しているので,コンパイルは不要だ。
(3). sdbindtを実行する。
(4). 最初にインストールするパッケージの選択を要求される。すべてインストールする場合には,「10」Enterとする。
リスト1●インストール画面
existing profiles:
0: C Precompiler
1: Runtime For SAP AS
2: DB Analyzer
3: JDBC
4: Server
5: Loader
6: ODBC
7: Script Interface
8: Webtools
9: XML Indexing Engine
10: all
11: none
please enter profile id: 10
(5).順次 データ格納ディレクトリ,プログラム格納ディレクトリ,サーバーソフトウエア格納ディレクトリの3つのディレクトリを指定する。表2●MaxDBの格納ディレクトリ
ディレクトリ | Linux | Windows |
データ格納用 | /var/opt/sdb/data | C:\Program Files\sdb\data |
プログラム用およびライブラリ | /opt/sdb/programs | C:\Program Files\sdb\programs |
サーバー・ソフトウエア格納用(バージョンに依存する) | /opt/sdb (/opt/sdb/7lighter) | C\Program Files\sdb (C:\Program Files\sdb\7lighter) |
デフォルト指定の場合には,何も入力せずにEnterをたたけばよい。
(6). すべてをインストールする場合,大量のインストール・メッセージが出力される。最後に以下のメッセージが出力されれば,インストールは正常終了だ。
installation of MaxDB Software finished successfully We,Dec 10,2003 at 14:26:08
インストールの内容は,すべてログ・ファイルに記録されている。この内容を一度参照することをおすすめする。各ファイルの配置を非常に丁寧に行っていることが実感できる。表3●インストールログの格納ディレクトリとファイル名
Linux | Windows | |
データ格納用 | /var/opt/sdb/data/wrk | C:\Program Files\sdb\data\wrk |
ファイル名 (例) |
maxDBSoftware_install-日付-時間.log (maxDBSoftware_install-01.26.2004-14.29.log) |
MaxDBは,Java,Perl,Python,c/c++のインターフェースを提供している。また,ODBCもサポートしているので,.NETで利用できる。
その他のプログラム言語からは,どのように接続すればよいか。前回説明したツール「MySQL proxy」でMySQLサーバーを装えばいいのだ。これなら,MySQLベースで記述されたPHPスクリプトも変更無しにMaxDBに移行できる。今回は,Webアプリケーションとして最も普及しているPHPから接続する例を示す。
MySQL proxyのインストールおよび実行
データベースのミドルウエアのインストールは手間のかかるものが多いが,MySQL proxyのインストールは,非常に簡単だ。ダウンロードファイルを入手して適当な展開するのみだ。
表4●MySQL proxyのダウンロード・ファイルを展開したところ
Linux | Windows | |
展開ファイル | MaxDBProxy MaxDB_ErrMsg.sys libSQLDBCProxy.sl |
MaxDBProxy.exe MaxDB_ErrMsg.sys libSQLDBCProxy.dll |
MySQL proxyは,コマンドベースのユーティリティだ。そのため,MaxDBProxyをパラメータをつけて実行すれば,MySQLサーバーとして動きはじめる。
リスト2● MySQL proxyを起動した際のメッセージ
>MaxDBProxy --console --dbname="TESTDB"
MaxDBProxy: ready for connections.
Version: '1.0 ALPHA' socket: '' port: 3306
「--console」は,必ずつける。また,「--dbname="TESTDB"」は,MaxDBのデータベース名を指定する。実行後に表示される「port: 3306」とは,MySQLサーバーのデフォルトのポート番号である。PHPスクリプトによるアクセス
![]() |
写真1●テーブルへのデータの格納(ODBC接続によるMicrosoft Accessの外部テーブル) |
早速簡単なPHPスクリプトで試してみよう。まず,対象となるデータベースおよびテーブルを作成する。
* MaxDBに新しくデータベース「TESTDB」を作成する。(Database Managerを使用すれば簡単に行える)
* データベース「TESTDB」内にテーブル「MYTABLE」を作成する。
構造は,カラム「NO」(Int)と「NAME」(テキスト)があればよい。(SQL Studioを使用すれば簡単に行える)
* 次にデータを格納する。私は,ODBCの接続テストも兼ねて,Microsoft Accessにて外部データ(テーブルのリンク)でアクセスして,データを入力した。漢字も使用している。「表」「予」は,特に文字化けしやすい5Cコードに該当する漢字だ(写真1[拡大表示])。
スクリプトの内容は,次のようなものだ。2行目,7行目,8行目,13行目,18行目,19行目にMySQLサーバーへのアクセスを行うコードがある。
リスト3●PHPからMySQLのデータベースに接続するコード「maxdb1.php」
1
2 if( !$my_con=mysql_connect("localhost","DBA","PASSWORD")){
3 print "接続に失敗しました
";
4 exit;
5 }
6
7 $row=mysql_select_db("TESTDB",$my_con);
8 if( !$result=mysql_query("select NO,NAME from DBA.MYTABLE")){
9 print "クエリーが失敗しました
";
10 exit;
11 }
12
13 while ($row=mysql_fetch_array($result)){
14 print $row["NO"]."=";
15 print $row["NAME"]."
";
16 }
17
18 mysql_free_result($result);
19 if( ! @mysql_close($my_con)){
20 print "切断に失敗しました
";
21 exit;
22 }
23
24 ?>
![]() |
写真2●テーブルの内容がWebページとして表示される |
このPHPスクリプトをWWWサーバーに置きWWWブラウザからアクセスした。写真2[拡大表示]のように化けることなく表示される。もちろん文字化けもない。
このようにMySQL proxyを使用すれば,MaxDBサーバーをMySQLサーバーとして偽装(欺瞞)できる。既にMySQLで構築済みのWebアプリケーションが,簡単にコードの変更なくMaxDBに移行できるわけだ。
■著者紹介 佐藤栄一(さとうえいいち)
ゼンド・オープンソースシステムズ株式会社 アーキテクト MySQL担当。ゼンド・オープンソースシステムズは,オープンソースによるシステム構築を提案し,情報化投資削減の実現を目指して平成14年12月に設立。PHPのコア技術者が設立したイスラエルZend Technologiesと提携関係にあり,Zend製品の販売,サポートおよびLAMPおよびLAPPによるシステム構築を推進している。平成15年8月より,MySQL ABのリセーラとしてライセンス,サポート,コンサルティングの提供を行っている。