特集 オープンソースで作る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]