FreeBSD上にPostgreSQLをインストールするメモ。
さくらVPS上のFreeBSDに設定しています。
何時も通りportinstallを使用してインストールします。
portinstall -f databases/postgresql90-server
ビルドオプションは次の通りとしました。
[X] NLS Use internationalized messages
[ ] DTRACE Build with DTrace probes (server only)
[ ] PAM Build with PAM support (server only)
[ ] LDAP Build with LDAP authentication support
[ ] MIT_KRB5 Build with MIT's kerberos support
[ ] HEIMDAL_KRB5 Builds with Heimdal kerberos support
[ ] OPTIMIZED_CFLAGS Builds with compiler optimizations (-O3)
[X] XML Build with XML data type (server)
[X] TZDATA Use internal timezone database (server)
[ ] DEBUG Builds with debugging symbols
[X] GSSAPI BUild with GSSAPI support
[ ] ICU Use ICU 3.x for unicode collation (server)
[ ] ICU4 Use ICU 4.x for unicode collation (server)
[X] INTDATE Builds with 64-bit date/time type (server)
インストールが正常に行われたらデータベースの初期化を行います。
portsからインストールするとpgsqlユーザが自動で追加されています。
su pgsql
のように一旦pgsqlユーザにsuしてから次のコマンドを入力します。
initdb -D /usr/local/pgsql/data --encoding=utf-8 --lc-collate=C
pgsqlユーザに環境変数PGDATAを設定している場合は-Dオプションでデータベースディレクトリを指定する必要はありません。
今回データベースディレクトリを/usr/local/pgsql/dataとするのは、PostgreSQLのスタートアップスクリプト(/usr/local/etc/rc.d/postgresql)内でデータベースディレクトリのデフォルトが
postgresql_data=${postgresql_data:-"~${postgresql_user}/data"}
と定義されているからです。
pgsqlユーザのホームディレクトリは/usr/local/pgsqlですから、/etc/rc.conf内でpostgresql_dataオプションを明示的に指定しない場合、否応無しにPostgreSQLのデータベースディレクトリが/usr/local/pgsql/dataとなります。
データベースの配置を変えたい場合は、initdbを行う際に-Dオプションでデータベースを配置したいディレクトリを指定、/etc/rc.confを編集する際にpostgresql_dataオプションでデータベースディレクトリを指定してください。
当然のことながら、データベースディレクトリはpgsqlユーザがアクセス可能なディレクトリでなければなりませんのでご注意を。
今回はデフォルトに沿ってインストールしますので、/etc/rc.confには
# PostgreSQL
postgresql_enable="YES"
のみを追加しました。
PostgresSQLの設定ファイルは、initdbを行った際に作成されたデータベースディレクトリに作成されます。今回は/usr/local/pgsql/dataの下に作成されているはずです。
TCP/IPによる接続を行う際の設定についてのみ記載しますが、postgresql.confの
#listen_addresses = 'localhost'
および
#port = 5432
とある行のコメントアウト(”#”マーク)をはずします。
これでlocalhostの5432ポート経由でPostgreSQLに接続が可能となります。他のサーバからPostgreSQLにアクセスする必要があるのなら
listen_addresses = 'localhost,192.168.1.1'
のようにカンマで区切ってネットワークインターフェイスのIPアドレスを記述してください。この場合はpg_hba.confでネットワークインターフェイスのIPアドレスが接続許可となるように設定する必要があります。
host all all 192.168.1.1/32 trust
設定が終わったら
/usr/local/etc/rc.d/postgresql start
としてPostgreSQLを起動させてみてエラーが無いか確認してみてください。
また
netstat -a
してみて
tcp4 0 0 localhost.postgresql *.* LISTEN
tcp6 0 0 localhost.postgresql *.* LISTEN
のような記述があればTCP/IP経由の接続も可能となっています。
コメント