HOME > Linux > Linux

PostgreSQL 7.1.3 のインストール

管理ユーザの作成

PostgreSQLの運用や管理は、専用のユーザで行います。ここでは、postgres というユーザを作成し作業を行います。
# adduser postgres
セキュリティ上、パスワードは設定しません。安易に一般ユーザから su コマンドを利用しないためです。

作業用ディレクトリの作成

インストール用ディレクトリをあらかじめ作成しておきます。ユーザ postgres でインストール作業を行うためディレクトリの所有者を postgres に変更します。
# mkdir -p /usr/local/src/postgresql-7.1.3
# chown postgres /usr/local/src/postgresql-7.1.3
# mkdir -p /usr/local/pgsql
# chown postgres /usr/local/pgsql

ソースのダウンロード

ソースファイルをFTPサイトからダウンロードします。
ダウンロードしたソースは、/usr/local/src に保存してあるものとします。
# cd /usr/local/src
# su postgres
$ tar xvfz postgresql-7.1.3.tar.gz 

configure,make,make install

configureを実行し Makefile を作成します。prefixでインストール先を/usr/local/pgsqlとします。ほかには、マルチバイト拡張機能を有効にするため --enable-multibyte=EUC_JPオプションを指定します。
$ cd postgresql-7.1.3
$ ./configure --enable-multibyte=EUC-JP --prefix=/usr/local/pgsql
$ make
インストールの準備ができたので、インストールします。
# make install
マニュアルをインストールする場合には、以下のコマンドを実行します。
# cd doc
# make install

環境変数の設定

ユーザ postgres およびデータベースを利用する全てのユーザについて、環境変数の設定を行う。環境変数は、ホームディレクトリにある .bashrc(bashの場合) ファイルにリスト1を記述します。
記述後、保存してsourceコマンドで変更を反映させます。
$ source .bashrc
リスト1:環境変数
PATH="$PATH":/usr/local/pgsql/bin
export POSTGRES_HOME=/usr/local/pgsql
export PGLIB=$POSTGRES_HOME/li
export PGDATA=$POSTGRES_HOME/data
export MANPAGE="$MANPATH":$POSTGRES_HOME/man
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PGLIB"

Apache Web サーバからPostgreSQLに接続する場合は、lld.so.confにPostgreSQLのライブラリディレクトリを記述します。
記述する内容を示します。

# vi /etc/ld.so.conf

/usr/local/pgsql/lib
記述した内容を有効にするために、ldconfigコマンドを実行します。
# ldconfig

データベースの初期化

データベースの初期化を行います。これにより、データベースが利用できるようになります。
$ initdb
コマンドを実行すると、処理状態を示すメッセージが表示されます。(リスト2)

リスト2:データベースの初期化
Creating directory /usr/local/pgsql/data
Creating directory /usr/local/pgsql/data/base
Creating directory /usr/local/pgsql/data/global
Creating directory /usr/local/pgsql/data/pg_xlog
Creating template1 database in /usr/local/pgsql/data/base/1
(中略)
Success. You can now start the database server using:
/usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data
or
/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start

PostgreSQLの起動

PostgreSQLの起動には、あらかじめ用意されている起動スクリプトを利用します。
# cp /usr/local/src/postgresql-7.1.3/contrib/start-scripts/linux  /etc/rc.d/init.d/pgsql
# chmod 700 /etc/rc.d/init.d/pgsql 
# cd /etc/rc.d/rc3.d
# ln -sf ../init.d/pgsql S83pgsql
PostgreSQLを起動します。
# /etc/rc.d/init.d/pgsql start

regression test

PostgreSQLが正しくインストールされたかのテストを行います。postmasterが起動していなければ起動します。以下のコマンドを実行しテストを行います。
$ cd /usr/local/src/postgresql-7.1.3/src/test/regress/
$ make all runtest
テスト状況がリスト3のように表示されます。

リスト3:regression test
============= running regression test queries  ==============
test boolean  ... ok
test char     ... ok
test name     ... ok
test varchar  ... ok
test text     ... ok
test int2     ... ok
test int4     ... ok
test int8     ... ok
(以下略)
okにならず、failedとなる場合があります。環境の違いにより、正常にインストールされていても全てがokになるとは限りません。

PostgreSQLユーザの追加

PostgreSQLを起動しても、createdbコマンドでデータベースを作成することができません。まず、PostgreSQLのユーザを作成します。
冒頭で作成した、管理ユーザ postgres に移行します。
# su postgres
ここでは、ユーザ hoge をPostgreSQLのユーザとして追加します。
$ createuser hoge
Shall the new user be allowed to create databases? (y/n) y
Shall the new user be allowed to create more new users? (y/n) n

「データベースの作成を許可するか?」の問いには、y と答え、次の新しいPostgreSQLユーザを作成を許可するか?」の問いには n と答えます。
これで、一般ユーザ hoge がデータベースを作成できるようになります。