【PostgreSQL】CentOSでPostgreSQLを設定

以下yumでインストールした場合。

設定ファイルの場所は/var/lib/pgsql/data/pg_hba.conf

<ユーザの作成>
インストール直後はユーザ「postgres」がデータベースのスーパーユーザになっているのでpostgresに切り替えて作業
# su postgres

次のコマンドでユーザ「sa」を作成
# createuser --createdb --no-adduser --pwprompt sa
引数の意味はなんとなく分かると思うけど、ここに説明があります。

削除するときは
# dropuser sa

ユーザの一覧をみたいときは
# psql
postgres=# select * from pg_user;

ここまでできたらpgAdminを使って「sa」でログインし、リモートで管理した方が楽。手動でコマンドを書きたいときはここを参考に。

リモートで接続できない場合は、設定ファイルで許可してないか、ポートが開いていない。ファイヤーウォールの設定は
# system-config-securitylevel-tui
を使う。ここを参考に。
Other portsに5432:tcpと記述すればOK.
設定後、同じコマンドで見てみると↓のように設定されている。

image

<2008/5/24 追記>
インストールした直後では外部から接続できないようにPostgreSQLが設定されている場合があるので、ここを参考に /var/lib/pgsql/data/postgresql.conf のlisten_addresses='*'にする。

あとクライアントの認証方法が/var/lib/pgsql/data/pg_hba.confに記述されているので、外からはユーザ名とパスワードを使って認証するので下記のように設定する。

host all all 192.168.0.0/24 md5

これは192.168.0.0~192.168.0.255までパスワードを使ってのログインを許可する設定。IPアドレスの表記法についてはwikipediaで。