【Linux】PostgreSQL 8.3.3のコンパイル→インストール→設定

akiyasu氏が既に書いてますが、さらに自分でやってみたメモ。環境はCentOS

ソースはここからダウンロード。

基本は公式日本語マニュアルをみながら。

必要なツールをyumで取得する
$ yum install gcc
$ yum install readline-devel zlib-devel

解凍してコンパイルとインストール
$ tar xzvf postgresql-8.3.3.tar.gz
$ cd postgresql-8.3.3
$ ./configure
$ gmake
$ gmake install

postgresユーザを追加
$ useradd postgres
$ passwd postgres (ログインさせたくないので設定しない)

ライブラリの登録
$ vi /etc/ld.so.conf.d/local.conf
/usr/local/pgsql/lib を追加。
$ ldconfig

postgresqlの設定ファイルの置き場所を作る
$ mkdir /usr/local/pgsql/data
$ chown postgres /usr/local/pgsql/data/

postgresユーザになってデータベースの初期化
$ su postgres
$ cd
$ vi ./.bashrc

PATH=/usr/local/pgsql/bin:$PATH
export PATH
を追加。読み込み。初期化。
$ source ./.bashrc
$ initdb -D /usr/local/pgsql/data

rootになって起動スクリプトを準備してPostgresSQLの起動
$ exit
$ cp contrib/start-scripts/linux /etc/rc.d/init.d/postgresql
$ chmod 755 /etc/rc.d/init.d/postgresql
$ /etc/rc.d/init.d/postgresql start

自動起動するように
$ chkconfig --add postgresql
$ chkconfig postgresql on

外からアクセスできるように設定ファイルを修正
$ vi /usr/local/pgsql/data/postgresql.conf
listen_addresses = '*'
port 5432

$ vi /usr/local/pgsql/data/pg_hba.conf
host all all 192.168.0.0/24 md5

これでpostgresqlを再起動
$ /etc/rc.d/init.d/postgresql restart

あとはここを参考にpgAdminでデータベースを作成した方が楽。ファイヤーウォールの設定を忘れずに(設定の仕方)。

スーパーユーザのpostgresでリモートからログインしたい場合はpostgresにパスワードを設定してあげる必要があります(Linuxのパスワードではなくて)。
$ su postgres
$ psql
# alter user postgres with password 'password' ;
# \q

yum経由でインストールした場合は、/var/lib/pgsqlにdataディレクトリができる。