2012年9月15日土曜日

FreeBSD 9.0にPostgreSQL 9.2をインストール

JSONでアップロードされたデータの格納に悩んでいたところに丁度、JSON型をサポートしたPostgreSQL 9.2がリリースされたのでFreeBSD 9.0にインストールしてみました。

DebianやCentOSのパッケージからインストールした時と勝手がだいぶ違うので備忘録として書いておきます。


インストール

potsnapでportsコレクションを最新に更新します。
# portsnap fetch update
更新完了後、postgresql92-serverディレクトリへ移動してmakeします。
2012/9/14現在、バージョンは9.2.0のリリース版です。
# cd /usr/ports/databases/postgresql92-server
# make install 
 postgresql92-clientも依存portsとして一緒にビルドされインストールされます。


サービスの有効化

FreeBSDは/etc/rc.confで一括してサービスの有効/無効を設定しています。
なので、/etc/rc.confの末尾にPostgreSQLのエントリを追加します。

#PostgreSQL
postgresql_enable="YES"

初期設定

アップグレードでは無く、新規インストールなのでデータ領域と初期設定ファイルを作成します。

# service postgresql initdb
The files belonging to this database system will be owned by user "pgsql".
This user must also own the server process.
The database cluster will be initialized with locale "C".
The default text search configuration will be set to "english".
creating directory /usr/local/pgsql/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 32MB
creating configuration files ... ok
creating template1 database in /usr/local/pgsql/data/base/1 ... ok
initializing pg_authid ... ok
initializing dependencies ... ok
creating system views ... ok
loading system objects' descriptions ... ok
creating collations ... not supported on this platform
creating conversions ... ok
creating dictionaries ... ok
setting privileges on built-in objects ... ok
creating information schema ... ok
loading PL/pgSQL server-side language ... ok
vacuuming database template1 ... ok
copying template1 to template0 ... ok
copying template1 to postgres ... ok
WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.
Success. You can now start the database server using:
    /usr/local/bin/postgres -D /usr/local/pgsql/data
or
    /usr/local/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start
OK。成功です。

サービス起動

serviceコマンドで起動します。
# service postgresql start
エラー、ワーニング等が表示されずにプロンプトに戻ってくれば起動は成功しているはずです。
動作確認の為、クライアントを起動してシステムデータベースへ接続してみます。
# psql -U pgsql -d postgres
psql (9.2.0)
Type "help" for help.
postgres=#
インストール時に作成されたユーザーpgsqlでシステムデータベースのpostgresqlへ接続しました。
エラーは特になく無事接続できたみたいです。


仕事で使っていたDebianやCentOSではバイナリパッケージを使用してインストールし初期設定も意識せず使ってました。
PostgreSQLの作法に近い形で設定する方法を知る良い機会になりました。

さて、新機能のJSON型はどんな感じかな~。

0 件のコメント:

コメントを投稿