PostgreSQL 8.2.3インストール

ここでは、PostgreSQL 8.2.3をソースからインストールする方法を紹介する。OSインストール時にパッケージとしてインストールされている場合は、あらかじめ削除しておくこと。

1.インストール前の作業

1-1 PostgreSQLの管理ユーザを作成

データベースは通常rootではなく専用のユーザを作り、そのユーザが管理を行う。まずはrootでログインし、管理ユーザを作成する。

# useradd postgres
# passwd postgres
(パスワードを設定する)

1-2 PostgreSQL用ディレクトリの作成

PostgreSQLの実行ファイルやデータを格納するディレクトリを作成する。

# mkdir /usr/local/pgsql
# chown postgres.postgres /usr/local/pgsql

2 インストール

前準備が終わったら、インストール作業を行う。ダウンロードサイトよりソースファイルをダウンロードしておくこと。

2-1 PostgreSQLの解凍

用意したPostgreSQLのソースを/usr/local/srcにコピーし、解凍する。

# cd /usr/local/src
# tar zxvf postgresql-8.2.3.tar.gz

2-2 PostgreSQLのコンパイル・make

正常に解凍できたら、コンパイル、makeを行う。

# cd postgresql-8.2.3
# ./configure
# make all

2-3 PostgreSQLのインストール

makeでエラーが出なければ、インストール作業を行う。ここからはpostgresユーザで作業を行う

# su - postgres
$ cd /usr/local/src/postgresql-8.2.3
$ make install

3 環境変数の設定

PostgreSQLを動作させるため、管理ユーザpostgresに対して環境変数を設定する。ホームディレクトリ(/home/postgres)配下の.bashrcファイルをviで開き、次のように修正する。

# User specific aliases and functions
export PATH="$PATH":/usr/local/pgsql/bin
export POSTGRES_HOME=/usr/local/pgsql
export PGLIB=$POSTGRES_HOME/lib
export PGDATA=$POSTGRES_HOME/data
export MANPATH="$MANPATH":$POSTGRES_HOME/man
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PGLIB"

保存したら、以下のコマンドを実行し、設定を反映させる。
(またはpostgresユーザをログアウトし、再度ログインする)

$ cd /home/postgres
$ source .bashrc

4 データベースの初期化

PostgreSQLをインストールした後、データベースの初期化を一度だけ実行しなければならない。

$ initdb --no-locale --encoding=EUC_JP

5 起動・停止の方法

PostgreSQLデータベースの起動・停止はpostgresユーザ(initdbを実行したユーザ)で行う。起動・停止はpg_ctlコマンドで行う。

起動

起動には、postgresユーザで次のコマンドを実行する。

$ pg_ctl -w start

コマンド実行後、postmasterが実行可能になるまで待機し、結果を表示する。起動に成功すると、次のようなメッセージが表示される。

waiting for postmaster to start.... done
postmaster successfully started

停止

postmasterを停止させるには、次のコマンドを実行する。

$ pg_ctl stop

コマンド実行後、postmasterが終了するまで待機し、結果を表示する。終了に成功すると、次のようなメッセージが表示される。

waiting for postmaster to shut down..... done
postmaster successfully shut down

なお、PostgreSQLを利用中のユーザがいると、次のメッセージが表示され、postmasterを終了することができない。

waiting for postmaster to shut down............................... failed
pg_ctl: postmaster does not shut down

この場合、接続中のユーザにログオフしてもらうか、以下のコマンドでpostmasterを強制終了させる。

$ pg_ctl -m f stop

しかし、この方法ではトランザクションが強制終了してしまうので、注意しなければならない。

6 自動起動の設定

サーバ起動時にpostmasterを自動的に起動させるには、次のように設定する。なお、この作業はrootで行う。

自動起動用スクリプトがソースに用意されているので、それを/etc/rc.d/init.dにpostgresというファイル名でコピーする。

# cp /usr/local/src/postgresql-8.2.3/contrib/start-scripts/linux /etc/rc.d/init.d/postgresql

インストール時にデータファイルなどをデフォルトではないディレクトリに配置した場合は、そのようにpostgresqlファイルを編集する。上記のとおりインストールをしているなら、編集は必要ない。

作成したファイルに実行権をつけ、シンボリックリンクを張る。

# chmod 755 /etc/rc.d/init.d/postgresql
# chkconfig --add postgresql

サーバを再起動し、動作を確認しよう。なお、手動での起動、停止は次のように行う。

# /etc/rc.d/init.d/postgresql start ・・・起動
# /etc/rc.d/init.d/postgresql stop ・・・停止


[ TOP ]