PostgreSQL設定の概略


 TurboLinux3.0では,インストール・タイプとして「すべて」を選択してインストールすると,PostgreSQLもインストールされます.バージョンは,6.3.2です.

■ホスト・アクセス制御の設定
 ローカル・ホスト以外からPostgreSQLへアクセスする場合には,アクセス制御の設定を行なう必要があります.
 任意のホストからのアクセスを認める設定をしてみましょう.

[1] rootユーザーでログインします.
[2] コマンドラインから「su postgres」と入力して,一時的に「postgres」という名前のユーザーになります.
[3] TurboDeskデスクトップ上で[ユーティリティ]-[ファイルマネージャ]をクリックします.
[4] 「/var/lib/pgsql」ディレクトリを開きます.
[5] 「pg_hba.conf」ファイルをダブル・クリックします(画面3
[6] 「#host all 0.0.0.0 0.0.0.0 trust」の行を探し,先頭の「#」を取り除いて有効にします(画面4).
[7] [×]ボタンをクリックします.
[8] 変更を保存するために[Yes]をクリックします(画面5).
[9] ログアウトします.

■データベース・デーモンの起動
 PostgreSQLを使うためには,postmasterというデータベース・デーモンを起動しておかなければなりません.

[1] rootユーザーでログインします.
[2] [TurboLinux]-[デスクトップ設定]をクリックします.
[3] [Managers]をクリックします.
[4] [XTurboService]をダブル・クリックします(画面6).
[5] [TurboDesk Service Manager]ウィンドウで,「4/6ページ」になるまで[次へ]ボタンをクリックします(画面7).
[6] 「postgresql」の行をダブルクリックします(画面8).
[7] [Change Service Status]ウィンドウで,[Configure]をクリックします(画面9).
[8] [ステータス・スペック行]に「postmaster」と入力し,[セーブして終了]をクリックします(画面10).
[9] 「postgresql」の行をダブルクリックします.
[10] [Change Service Status]ウィンドウで,[Enable]をクリックします.
[11] [Enable Service]ウィンドウで,[3と5]ボタンをクリックします(画面11).
[12] 「postgresql」の行をダブルクリックします.
[13] [Change Service Status]ウィンドウで,[Start]をクリックします.
[14] 「postgresql」の状態表示が[Running]に変わります.
[15] [プログラム]-[Kterm]をクリックして,端末エミュレータを起動します.
[16] 「ps aux | grep postmaster」と入力し,postmasterの起動を確認します(画面12).

 ローカル・ホスト以外からアクセスする場合には,次の設定も行ないます.

[1] ファイル・マネージャで「/etc/rc.d/init.d」ディレクトリを開きます(画面13).
[2] 「postgresql」ファイル上で右クリックして,ポップアップ・メニューから[Edit]を選択します.
[3] postmasterコマンドの最後の部分に「-i」を挿入します(画面14).

 su postgres -c '/usr/bin/postmaster -S -D/var/lib/pgsql -i'

[4] ファイルの変更を保存して終了します.
[5] システムを再起動します.

■データベース・ユーザーの登録
 ふつうrootユーザーでデータベースを直接操作することはしません.すでに登録済みのpostgresユーザーあるいは他の一般ユーザーとなって使用します.
 postgresユーザーは登録済みですが,パスワードの設定だけを行なっておきましょう.

[1] rootユーザーでログインします.
[2] [システム]-[ユーザー設定]をクリックします.
[3] postgresユーザーのパスワードを設定します.
[4] ログアウトします.

 他のUNIXユーザーを,データベースのユーザーとして登録してみます.

[1] postgresユーザーでログインします.
[2] Kterm上で,「createuser uchida」と入力します.
[3] UNIXユーザーのIDを使用する場合には,そのまま[Enter]キーを押します.
[4] そのユーザーにデータベースの作成権を与える場合には,「y」と入力します.
[5] そのユーザーにユーザーの追加権を与える場合には,「y」と入力します(画面15).

■データベースを作ってみよう
 簡単な成績表のデータベースを作ってみましょう.

データベース名:mydb
テーブル名:mytbl

表1 「mytbl」テーブル

表2 登録するデータ

[1] Kterm上で,「su uchida」と入力します.
[2] 「createdb mydb」と入力します.

 データベースの操作を行なうには,「psql」という対話型のSQL処理モニターを使用します.実際の処理は,createやinsertなどのSQL文を入力して行なうことになります.

[1] 「psql mydb」と入力します.
[2] テーブルを作成するために「create table mytbl (id int, name char(20), score int);」というSQL文を入力します.行末の「;」(セミ・コロン)の入力を忘れないようにしてください.
[3] テーブルの作成に成功すると「CREATE」と表示されます(画面16).
[4] テーブルの存在を確認するために「\d」と入力します.このとき「\」記号は「\」(バック・スラッシュ)と表示されます.
[5] テーブルの構成を確認するために「\d mytbl」と入力します.
[6] テーブルにデータを登録するために,「insert into mytbl values (1, '他亜簿 理名楠', 80);」と入力します.
[7] データの登録に成功すると「INSERT」と表示されます(画面17).
[8] 登録されたデータを確認するために,「select * from mytbl;」と入力します.
[9] テーブルの内容が表示されます(画面18).
[10] psqlを終了するために,「\q」と入力します.


補足

上記で上手くいかないときは、次の操作を行ってみてください。

@rootユーザーでログインします。

A「/etc/rc.d/init.d」ディレクトリ内に「postgresql~」というバックアップ・ファイルができている場合には削除します。

ファイルマネージャで削除します。

B「/var/lib/pgsql」ディレクトリ内の「pg_hba.conf」ファイルのオーナーおよびグループが「root」になっている場合には、「postgres」に変更します。
そのためには、Kterm上で次のコマンドを入力します。

cd /var/lib/pgsql
ls -l
chown postgres pg_hba.conf
chgrp postgres pg_hba.conf
ls -l

C次のエラーメッセージが表示される場合
Connection DB() faild : Is the postmaster runnning and accepting connection at 'UNIX Socket' on port '5432'
createdb : database creation faild on mydb

「/tmp/.s.PGSQL.5432」ファイルを削除します。

このファイルは隠しファイルになっていますので、ファイルマネージャではメニューから[View]-[Show hidden files]を選択すると表示されます。

Dシステムを再起動します。

E再起動後、postgresユーザーでログインし、次のコマンドを入力して「postmaster」の起動を確認します。

ps aux | grep postmaaster


●参考文献
月刊I/O(工学社発行)1999年5月号
連載記事「ホットなSOHO研究室」内田保雄


戻る