試しに miniSQL バージョン 3 (リ レーショナルデータベース管理システム)を, FreeBSD上にインストールしてみ ることにした。最新バージョンは 3.5 です.
【関連する外部ページ】Hughes Technologies 社 Web ページ
% cd /var/tmp % tar -xvzof msql-3.5.tar.gz % cd msql-3.5 % ./setup % make % make install
/usr/local/msql3 にインストールされる.src/site.mm を見て下さい。
[general] mSQL_User = msql Admin_User = root [system] Remote_Access = True
mSQL_User は、miniSQL サーバを実行するユーザのこと。 Admin_User には、miniSQL のデータベース生成, 削除、サーバシャットダウン等の 権限をもった「管理者用のユーザ名」を設定する。
% 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」に設定すると、セキュリティ上の対 策が必要なので、十分に注意すること。
記述中
database read write access host
msql ユーザで行なう。
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とする。
以下、ツールの説明ですが、ツールのオプション部分は、頻繁に使われるであ ろうパラメタだけを書いています.
SQL コマンドを、サーバに送信し実行させるプログラム。 終了は「\q」, サーバへの送信は「\g」。
scheme viewer
Admin program です. create db_name, drop_dbname, shutdown などがあります.
Data dumper です.出力は SQL 形式。
Data exporter です.出力は、スプレッドシートでの操作に適した形式。
miniSQLバージョン 2.0.12 (リレーショナルデータベース管理システム)を, FreeBSD 上にインストールすることを試みましたが、うまくいきません。
バグの中身ですが、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 では、このようなバグはありません。
% 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を参考にする。