ここでは、PostgreSQL 8.2.3をソースからインストールする方法を紹介する。OSインストール時にパッケージとしてインストールされている場合は、あらかじめ削除しておくこと。
1-1 PostgreSQLの管理ユーザを作成
データベースは通常rootではなく専用のユーザを作り、そのユーザが管理を行う。まずはrootでログインし、管理ユーザを作成する。
# useradd postgres
# passwd postgres
(パスワードを設定する)1-2 PostgreSQL用ディレクトリの作成
PostgreSQLの実行ファイルやデータを格納するディレクトリを作成する。
# mkdir /usr/local/pgsql
# chown postgres.postgres /usr/local/pgsql
前準備が終わったら、インストール作業を行う。ダウンロードサイトよりソースファイルをダウンロードしておくこと。
2-1 PostgreSQLの解凍
用意したPostgreSQLのソースを/usr/local/srcにコピーし、解凍する。
# cd /usr/local/src
# tar zxvf postgresql-8.2.3.tar.gz2-2 PostgreSQLのコンパイル・make
正常に解凍できたら、コンパイル、makeを行う。
# cd postgresql-8.2.3
# ./configure
# make all2-3 PostgreSQLのインストール
makeでエラーが出なければ、インストール作業を行う。ここからはpostgresユーザで作業を行う。
# su - postgres
$ cd /usr/local/src/postgresql-8.2.3
$ make install
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
PostgreSQLをインストールした後、データベースの初期化を一度だけ実行しなければならない。
$ initdb --no-locale --encoding=EUC_JP
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
しかし、この方法ではトランザクションが強制終了してしまうので、注意しなければならない。
サーバ起動時に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 ・・・停止