オープンソースで作る Java+DB

特集 オープンソースで作るJava+DB
第1回 PostgreSQLで学ぶSQLデータベースの操作 (12/15)


psqlコマンドの終了

 以上、簡単にではあるが、レコードの追加、参照、削除のそれぞれの方法を説明した。次に、psqlコマンドを終了させてみよう。psqlコマンドを終了するには、「\q」と入力すればよい。

sampledb=# \q

 psqlコマンドが終了し、シェルに戻る。

TCP/IPで接続できるようにする

 ここまで動作確認のためにpsqlコマンドを使ってデータベース操作をしてきた。

 しかしデータベースは、コマンドラインから操作するのではなく、アプリケーションのデータの格納域として保存するのがおもな利用方法だ。つまり、C言語やC++、JavaやPerlなどの開発言語で作られたアプリケーションから、データを保存する場所としてデータベースが利用される。

 そのために必要となるのが、PostgreSQLと各開発言語をつなぐためのインタフェースだ。インタフェースは、冒頭に示したようにRPMパッケージとして提供されているため、使いたいものをインストールすればよい。

 ここで注意したいのは、幾つかのインタフェースは、TCP/IP経由での接続を要求するという点だ。PostgreSQLでは、標準でUNIXドメインのソケットを用い、TCP/IPを利用しない。そのため、たとえばJavaからPostgreSQLを利用するためのJDBCドライバなど、TCP/IPでのアクセスを前提とするインタフェースはそのままでは利用できないことを意味する。

 このため、PostgreSQLに対してTCP/IP経由でアクセスできるよう、設定変更しておく必要があるのだ。

TCP/IP接続を有効にする

 TCP/IP経由で利用できるようにするためには、PostgreSQLの本体のpostmasterというプログラムを実行する際に、「-i」オプションを付ければよい。

 標準のpostgresqlスクリプトには、-iオプションがないので、これを追加しよう。具体的には、/etc/rc.d/init.d/postgresqlスクリプトの160行目付近にある次の文を変更すればよい。

変更前

su -l postgres -s /bin/sh -c "/usr/bin/pg_ctl -D $PGDATA -p /usr/bin/postmaster -o '-p ${PGPORT}' start > /dev/null 2>&1" < /dev/null

変更後

su -l postgres -s /bin/sh -c "/usr/bin/pg_ctl -D $PGDATA -p /usr/bin/postmaster -o '-p ${PGPORT} -i' start > /dev/null 2>&1" < /dev/null

One Point!

pg_ctlコマンドは、postmasterを実行するための間接的なコマンドだ。-oオプション以降が、postmasterに対するオプションとなる。

 postgresqlスクリプトの変更後は、次のようにPostgreSQLを再起動する。

# /etc/rc.d/init.d/postgresql restart

 これでPostgreSQLがTCP/IPで接続できるようになっているはずだ。実際にTCP/IPで待ち受けているかどうかは、netstatコマンドを使って調べることができる。

# netstat -an Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State …略… tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN …以下略…

 この際、ポート5432で待ち受けしているものがあれい、正しくPostgreSQLは動作しているといえる。

One Point!

待ち受けのポート番号は、PGPORT環境変数で変更できる。変更したい場合には、/etc/sysconfig/pgsqlにpostgresqlファイルを置き、スクリプトとして記述する。

前のページ | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 次のページ

[大澤文孝,ITmedia]