FreeBSDにPostgreSQLをインストールする。

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経由の接続も可能となっています。


コメント

タイトルとURLをコピーしました