miniSQL バージョン3のインストールと設定
試しに miniSQL バージョン 3 (リ レーショナルデータベース管理システム)を, FreeBSD上にインストールしてみ ることにした。最新バージョンは 3.5 です.
【関連する外部ページ】 Hughes Technologies 社 Web ページ
miniSQL インストール
- Hughes Technologies 社 Web ページにて、メール登録
- メールで送られてくるパスワードにてログイン
- ファイルは、仮に /var/tmp/ にダウンロードし、make する。
% cd /var/tmp % tar -xvzof msql-3.5.tar.gz % cd msql-3.5 % ./setup % make % make install
/usr/local/msql3 にインストールされる.src/site.mm を見て下さい。
設定
-
/usr/local/msql3/msql.conf を確認し、mSQL_User, Admin_User を設定しま
す。以下は設定例です.
[general] mSQL_User = msql Admin_User = root [system] Remote_Access = True
mSQL_User は、miniSQL サーバを実行するユーザのこと。 Admin_User には、miniSQL のデータベース生成, 削除、サーバシャットダウン等の 権限をもった「管理者用のユーザ名」を設定する。
- msqlユーザのパスワード設定。FreeBSD の passwd コマンドを使用。
% passwd msql
「Remote_Access = True」の行について。 miniSQL サーバへの接続は、UNIX ドメインソケットによる接続と、TCP ソケッ トによる接続がある。UNIX ドメインソケットによる接続は、ローカルサイト からのみ可能である(UNIX ドメインソケットの性質から)、TCP ソケッ トによる接続は、原理的にどのサイトからでも可能である。
「Remote_Access = ... 」の行を、False に設定すると、 UNIX ドメインソケッ トによる接続のみを許す。 「Remote_Access = ... 」の行を、True に設定すると、UNIX ドメインソケッ ト、TCP ソケットの両方ができるようになる。 ソフトによっては、ローカルサイトへの接続なのに, UNIX ドメインソケッ トソケットでなく、TCP ソケットを使っているものがある(ConfMan など)ので、 注意する。 また、「Remote_Access = True」に設定すると、セキュリティ上の対 策が必要なので、十分に注意すること。
msql.acl の設定
記述中
database read write access host
起動
- /usr/local/etc/rc.d/msql2.sh start(stop)で起動(終了が出来る)
msql ユーザで行なう。
- デバッグについて。
environmentに MSQL_DEBUG xxx を加えるとデバッグモードで動く
xxx : msql_query (cause the API to print the contents of queries as they are sent to the server.) msql_api (causes internal information, such as connection details, to be printed.) msql_malloc (Details about the memory used by the API library can be obtained)
**MANUALと違うので注意!**
設定法はFreeBSDの場合
% setenv MSQL_DEBUG msql_query
とする。 複数設定する場合は% setenv MSQL_DEBUG msql_query:msql_api
とする。
ツール等
以下、ツールの説明ですが、ツールのオプション部分は、頻繁に使われるであ ろうパラメタだけを書いています.
- msql [-h host] database
SQL コマンドを、サーバに送信し実行させるプログラム。 終了は「\q」, サーバへの送信は「\g」。
- relshow [-h host] database
scheme viewer
- msqladmin [-h host] database
Admin program です. create db_name, drop_dbname, shutdown などがあります.
- msqldump [-h host] database
Data dumper です.出力は SQL 形式。
- msqlexport [-h host] database
Data exporter です.出力は、スプレッドシートでの操作に適した形式。
miniSQL バージョン2のインストールと設定について
miniSQLバージョン 2.0.12 (リレーショナルデータベース管理システム)を, FreeBSD 上にインストールすることを試みましたが、うまくいきません。
- gcc のバージョン 3.3, 2.95.3 で試しましたがだめでした。
- bison のバージョン 1.28, 最新版で試しましたがだめでした。
バグの中身ですが、lite の substr() 関数についてのバグです. substr() 関数を使う簡単なテストプログラムを作りました。
---------------------------------------------------- $test = "--success--"; $str = substr($test, "-(-[a-z]*-)-", "RESULT = $1"); echo("$str \n"); ----------------------------------------------------
FreeBSD での実行結果は次のようになり、間違った結果です.
---------------------------------------------------- prompt%lite test.lite RESULT = $1 ----------------------------------------------------
正しくは次のようになるはずです.
---------------------------------------------------- prompt%/usr/local/Hughes/bin/lite test.lite RESULT = -success- ----------------------------------------------------
バグの解決法が分からないので、FreeBSD に、miniSQL バージョン 2.0.12を インストールすることはあきらめました。Solaris だとうまくいくようです. また、miniSQL のバージョン3 では、このようなバグはありません。
miniSQL インストール
- 欲しいバージョンを/usr/ports/distfile/に取ってくる
- /usr/ports/database/msqlにて
% make % make install
テスト
miniSQL に付属の言語 lite のテストを実行する. liteには、test.liteというプログラムがあり、実行してみた結果、以下のようになった。
prompt% pwd /usr/ports/databases/msql/work/msql-2.0.12/src/lite prompt% ls Makefile Makefile.tmpl.orig lite_lex.c mod_lite.c.orig test.lite Makefile.tmpl lite.c mod_lite.c modules.c prompt% lite Lite Version 2.0.12 Host platform is 'FreeBSD-5.2.1-RELEASE-i386' usage : lite [-d -t -l LibFile ] filename Lite dynamic loading option enabled prompt% lite test.lite hello there blah hello there someone prompt%
設定
このとき、READMEなどに書いてあるパスとportsでいれた時のパスが 違うので、msql/files/post-install-nodeを参考にする。