PostgreSQL 8.0/8.1のインストール
バージョン | PostgreSQL 8.0.1 / 8.1 | |
公式サイト | http://www.postgresql.org/ |
PostgreSQLはフリーのオブジェクトリレーショナルデータベース管理システム(ORDBMS)。日本語も問題なく扱え、非常に強力です。
過去のバージョンのインストールについては、こちらからどうぞ。
(2005/12/16追記)PostgreSQL 8.1も同じ手順でインストールできることを確認しました。
展開&コンパイル
現在のバージョンでは普通にconfigureするだけで、日本語が扱え、syslogにも対応しています。普通にconfigureしてmakeします。
$ tar xvfz postgresql-8.0.1.tar.gz $ cd postgresql-8.0.1 $ ./configure $ make all
インストール
レグレッションテストをします。
$ make check
問題なければ、suして、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」というデータベースを作成しています。また、文字エンコーディングにEUC_JPを指定しています。
[postgres]$ createdb --encoding=EUC_JP
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に取りたい時の設定方法です。
/usr/local/pgsql/data/postgresql.confのlog_destinationの値を'syslog'に設定します。また、必要に応じて出力する内容をこのファイルで設定します。
log_destination = 'syslog'
また、必要に応じて出力する内容をこのファイルで設定します。例えば全てのクエリーの内容を出力するには、次のように設定します。
log_statement = 'all'
/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
TCP接続の設定
標準ではUNIXドメインソケットでの接続に限定されており、TCPを使ってのリモート接続が許可されていません。これを許可するようにします。
/usr/local/pgsql/data/postgresql.confのlisten_addressesの値を'*'に設定します。
listen_addresses = '*'
/usr/local/pgsql/data/pg_hba.confファイルで認証設定を行います。とりあえず簡単にローカルネットワーク(192.168.0.0/24)からのアクセスを許可するには、次の行を加えます。
host all all 192.168.0.0/24 trust
PostgreSQLを再起動します。
# 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