プログラミングお勉強 @Wiki

FirebirdをFC4にインストール!

最終更新:

匿名ユーザー

- view
メンバー限定 登録/ログイン
#blognavi
Firebird という オープンソースRDBMSを見つけた。
#ref error :画像を取得できませんでした。しばらく時間を置いてから再度お試しください。

http://www.firebirdsql.org/

なにやら FirefoxとThunderbird を足したような名前で、ついつい惹かれてしまった.....
元々はボーランドのInterBaseというRDBMSだそうだ。
オープンソースRDBMSといえば、MySQL、PostgreSQLの2大DBという気がしていたが、元は商用からきているFirebird。結構面白そうである。

まずはインストール


まずはFC4にインストールしてみよう。
上記サイトからダウンロードをたどり、プログラムをダウンロードする。

アーキテクチャの違い

ここで、
FirebirdCS-1.5.2..... というものと
FirebirdSS-1.5.2..... というものがある。
CSとSSとは?

これはアーキテクチャの違いで、
Classic(CS)とSuper Server(SS) の違いである。
原文から行くと、

 Classic
 The classic architecture allows for programs to 
 directly open the database file. It is architected to
 allow the same database to be opened by several 
 programs at once. The classic engine also allows
 remote connections to local databases by providing an 
 inetd or xinetd service (This spawns a seperate task 
 per user connection).

 Super Server
 The super server architecture provides a server 
 process, and client process cannot directly open the 
 database file and all SQL requests are done via the 
 server using a socket. The super server makes use of 
 lightweight theads to process the requests.

ということである。簡単に解釈すると、
Classicはクライアントのプログラムが個別にDatabaseファイルをオープンする為、共有のRDBMSプロセスが無く、SuperServerはFirebirdのサーバープロセスを起動し、それを通してクライアントがアクセスするアーキテクチャらしい。

つまり、Oracle Databaseでいうところの専用接続と、マルチスレッド接続にちょっと近いかな。
(ちょっと発想は違うが、ORACLEのクライアントプロセスだけを考えれば、クライアントごとに起動されるタイプと、共有プロセスでマルチスレッド接続されるのはイメージとしては合うかな。)

で、どちらが良いかということだが、単に一人だけで、まずは純粋にRDBMS機能をテストするということではClassicの方が分かりやすいはず。
共有プロセスの管理等はまた別途で考える。

ということで、下記をダウンロード。
 FirebirdCS-1.5.2.4731-0.i686.rpm

早速 rpm コマンドでインストール
 # rpm -i FirebirdCS-1.5.2.4731-0.i686.rpm
 /opt/firebird/bin/gsec: error while loading shared libraries: libstdc++.so.5: 
 cannot open shared object file: No such file or directory
 エラー: %post(FirebirdCS-1.5.2.4731-0.i686) scriptlet failed, exit status 127
 #

あれ? FedoraCore4 未対応か?とちょっと心配したが、
libstdc++.so.5 が入ってないことによるエラー。

libstdc++.so.X を探すと、
 # find / -name "libstdc++.so.*"
 /usr/lib/libstdc++.so.6
 /usr/lib/libstdc++.so.6.0.4

上記のとおり、6が入っている。ということで、追加のライブラリが必要。

http://ftp.iij.ad.jp/pub/linux/fedora/core/4/i386/os/Fedora/RPMS/ にアクセス。
ここで、
compat-libstdc++-33-3.2.3-47.fc4.i386.rpm をダウンロード。
ここに「libstdc++.so.5」が含まれているはず。

まずは、ライブラリをインストール。
 # rpm -i compat-libstdc++-33-3.2.3-47.fc4.i386.rpm

再度 ライブラリを検索。
 # find / -name "libstdc++.so.*"
 /usr/lib/libstdc++.so.5.0.7
 /usr/lib/libstdc++.so.5
 /usr/lib/libstdc++.so.6
 /usr/lib/libstdc++.so.6.0.4
これでOK。

再度 Firebirdをインストール。
 # rpm -i FirebirdCS-1.5.2.4731-0.i686.rpm
       package FirebirdCS-1.5.2.4731-0 is already installed
インストール済みのエラーが表示される。
Freshオプションをつけてインストールする。
 # rpm -iF FirebirdCS-1.5.2.4731-0.i686.rpm  
これで /opt/firebirdに無事インストールされた。

 # ls /opt/firebird
 README           bin            firebird.msg                  isc_init1.linux.konishi.com
 SYSDBA.password  doc            help                          isc_lock1.linux.konishi.com
 UDF              examples       include                       lib
 WhatsNew         firebird.conf  intl                          misc
 aliases.conf     firebird.log   isc_event1.linux.konishi.com  security.fdb

試しにSYSDBAのパスワードを変更してみる。

 # /opt/firebird/bin/gsec -user sysdba -password masterkey -database "/opt/firebird/security.fdb"
 GSEC> welcome

これで再度Welcomeで入りなおしてみる。

 # /opt/firebird/bin/gsec -user sysdba -password welcome -database "/opt/firebird/security.fdb"
 GSEC>

サンプルDBにログインしてみる。

 # ./isql
 Use CONNECT or CREATE DATABASE to specify a database
 SQL> connect "/opt/firebird/examples/employee.fdb"
 CON> user 'sysdba' password 'welcome';
 Database:  "/opt/firebird/examples/employee.fdb", User: sysdba
 SQL>

これでOK。ちょっと今後もいじってみるかな。


カテゴリ: [Firebird] - &trackback() - 2005年08月21日 11:47:13
名前: コメント:
#blognavi
記事メニュー
目安箱バナー