PostgreSQL を手動で開始/停止する方法、および PostgreSQL の起動後に最低限必要となる基本設定について解説します。PostgreSQL のデーモン postmaster は、/etc/init.d/postgresql スクリプトに以下のオプションを指定することにより制御することができます。
表 25-1. 制御スクリプトオプション
| オプション | 説明 |
|---|---|
| start | postmaster デーモンを起動します。 |
| stop | postmaster デーモンを停止します。 |
| restart | postmaster デーモンを再起動します。 |
| status | postmaster デーモンの起動状況を確認します。 |
| reload | 設定ファイルを再読込みします。 |
| condrestart | デーモンが動作しているかを確認後、再起動します。(/var/lock/subsys/postgresql が存在するとき再起動します。) |
| condstop | デーモンが動作しているかを確認後、停止します。(/var/lock/subsys/postgresql が存在するとき再起動します。) |
| initdb | データベースクラスタが空の場合のみ初期化します。存在する時にはエラーメッセージを返します。 |
PostgreSQL を起動するには、以下のコマンドを実行します。
# /etc/init.d/postgresql start |
PostgreSQL を停止するには、以下のコマンドを実行します。
# /etc/init.d/postgresql stop |
Turbolinux 11 Server 起動時に PostgreSQL を自動的に開始するには、以下のように chkconfig コマンドを実行しておきます。
# chkconfig postgresql on |
PostgreSQL の初回起動時には、データベースクラスタ(データベースを格納する領域)を作成するために、postgres ユーザーで initdb コマンドを実行します(Turbolinux 11 Server では、postgres というユーザーが自動的に登録されています)。initdb コマンドは、環境変数 PGDATA で指定されたディレクトリにデータベースクラスタを作成し、初期化を行うコマンドです。Turbolinux 11 Server のデフォルトでは、/var/lib/pgsql/.bash_profile に以下の環境変数が設定されています。
PGDATA=/var/lib/pgsql/data export PGLIB PGDATA |
これにより、標準では /var/lib/pgsql/data/ ディレクトリにデータベースクラスタが作成され、データベースのテンプレートである template0 と template1 が作成されます(これらデータベースは、あくまでもテンプレートであり、実際に使用すべきデータベースではありません)。また、initdb を実行した postgres ユーザーは、データベースクラスタのスーパーユーザーと呼ばれ、PostgreSQL の管理者となります。そして、この postgres ユーザーは、PostgreSQL のデータベースロールとしても登録され、データベースの作成や他のデータベースロールを登録する権限が付与されます。
PostgreSQL バージョン 8.2 からは以前のバージョンまでのデータベースユーザーはロールと呼ばれ、ユーザーやグループの統合のような意味合いを持ち、権限や認証に関する属性を持ちます。
![]() | Linuxシステムにおけるユーザーと PostgreSQL のデータベースのロールは、まったく別のユーザーであり、区別されていますので注意してください。 |
新規データベースユーザーの登録やデータベースの作成は、postgres ユーザーでシステムにログインして行います。Linux システムにおける postgres ユーザーのパスワードは、初期状態では設定されていませんので、root でログインして最初にパスワードを設定する必要があります。
# passwd postgres |
パスワードを設定し、postgres ユーザーでシステムへログインすると /var/lib/pgsql をホームディレクトリとしてログインします。これで、PostgreSQL を使用するための準備が整いました。データベースの作成を開始することができます。