2001/4/23 (2002/4/8 更新)
バージョン PostgreSQL 7.1/7.2.1
OS Red Hat Linux 7.1
公式サイト http://www.postgresql.org/

PostgreSQLはフリーのオブジェクトリレーショナルデータベース管理システム(ORDBMS)。日本語も問題なく扱え、非常に強力です。7.1ではトランザクション処理が大幅に速くなり、障害耐性も高くなりました。

この記事は古いバージョンのインストール手順です。より新しいバージョンのインストールについては、こちらからどうぞ。

(2002/4/8更新)PostgreSQL 7.2.1も同じ手順でインストールできることを確認しました。syslogの設定方法を追加しました。Red Hat Linux系での起動設定の方法を追加しました。

展開&コンパイル

日本語を扱えるようにするため、configureで--enable-multibyte=EUC_JPを指定してconfigureします。Unicodeなど他のコードも使用可能です。詳しくは同梱のdoc/README.mb.jpを参照してください。

syslogにログを出力する機能を使用する場合は、--enable-syslogを指定します。

$ tar xvfz postgresql-7.1.tar.gz

$ cd postgresql-7.1
$ ./configure --enable-multibyte=EUC_JP --enable-syslog

$ make

インストール

make installします。

$ su

# make install

PostgreSQLは、root権限での初期設定、起動ができないので、新たに専用のアカウントを作ります。今回はpostgresというアカウントを作りました。

# /usr/sbin/adduser postgres

データ保存用のディレクトリを作ります。次にpostgresアカウントに移行して、データを初期化します。

# mkdir /usr/local/pgsql/data
# chown postgres:postgres /usr/local/pgsql/data
# su - postgres
[postgres]$ /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

初期設定

~postgres/.bash_profileに以下を追加します。

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"

.bash_profileを再読み込みします。

[postgres]$ source ~postgres/.bash_profile

PostgreSQLサーバを立ち上げます。

[postgres]$ pg_ctl start

データベースを作ります。createdbコマンドの引数を省略するとユーザー名と同じ名前のデータベースが作られます。つまりここでは「postgres」というデータベースを作成しています。

[postgres]$ createdb

psqlで接続できれば成功です。

[postgres]$ psql
Welcome to psql, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help on internal slash commands
       \g or terminate with semicolon to execute query
       \q to quit

postgres=#

syslogの設定

syslogにログを出力する機能を使用する場合は、まず最初のconfigureで--enable-syslogを指定して、コンパイル、インストールしておく必要があります。

/usr/local/pgsql/data/postgresql.confのsyslog行の値を2に設定します。また、必要に応じて出力する内容をこのファイルで設定します。

syslog = 2

/etc/syslog.confに次の行を追加します。

local0.*        /var/log/postgresql.log

PostgreSQLとsyslogを再起動します。

# /etc/rc.d/init.d/xinetd restart

# su - postgres

[postgres]$ pg_ctl restart

[postgres]$ exit

自動起動の設定

/etc/rc.d/rc.localに以下を追加します。

su postgres -c "/usr/local/pgsql/bin/pg_ctl start"

あるいは、Red Hat Linux系であれば、次のようにします。

# cp contrib/start-scripts/linux /etc/rc.d/init.d/postgres
# chmod +x /etc/rc.d/init.d/postgres
# /sbin/chkconfig --add postgres