Snow Leopard に PostgreSQL インストール

  • このエントリーをはてなブックマークに追加

個人的にはMySQLの方が好きなんですが、開発環境としてPostgreSQLが必要になったのでその時のインストールメモ。

※euc-jpでcreatedbできなくて、3回インストール、アンインストールを繰り返しました・・・

インストール

今回は、PostgresSQL8.3をインストールする必要が有ったので、portで検索してからインストール。

[suusuke@macbook ~]$ sudo port search postgresql
[suusuke@macbook ~]$ sudo port install postgresql83
[suusuke@macbook ~]$ sudo port install postgresql83-server

ちなみに、postgresql83とpostgresql83-serverの違いは

postgresql83 postgresql83-server
psqlやpg_dumpなどのPostgreSQLのクライアントユーティリティ initdbやpg_ctlなどのPostgreSQLのサーバユーティリティ。
DBMSサーバとして必要な機能はこれに含まれています。

という感じです。

自動起動・解除

[suusuke@macbook ~]$ sudo port load postgresql83-server
[suusuke@macbook ~]$ sudo launchctl list | grep macports ← 確認

解除する場合は

[suusuke@macbook ~]$ sudo port unload postgresql83-server

領域確保と初期化

portsでインストールするとログに書いてあるのでそのまま実行。

[suusuke@macbook ~]$ sudo mkdir -p /opt/local/var/db/postgresql83/defaultdb
[suusuke@macbook ~]$ sudo chown postgres:postgres /opt/local/var/db/postgresql83/defaultdb/

euc-jpの場合は

[suusuke@macbook ~]$ sudo su postgres -c '/opt/local/lib/postgresql83/bin/initdb -E EUC-JP --no-locale -D /opt/local/var/db/postgresql83/defaultdb'

特に設定しない場合はデフォルト(ロケールの設定、通常はUTF-8)。

[suusuke@macbook ~]$ sudo su postgres -c '/opt/local/lib/postgresql83/bin/initdb -D /opt/local/var/db/postgresql83/defaultdb'

スタート・ストップ

[suusuke@macbook ~]$ sudo su - postgres /opt/local/lib/postgresql83/bin/postgres -D /opt/local/var/db/postgresql83/defaultdb
[suusuke@macbook ~]$ sudo su postgres -c '/opt/local/lib/postgresql83/bin/pg_ctl -D /opt/local/var/db/postgresql83/defaultdb stop'

インストールログに起動方法はもう一つあるが

[suusuke@macbook ~]$ sudo su postgres -c 'pg_ctl -D /opt/local/var/db/postgresql83/defaultdb -l logfile start'
Password:
server starting
sh: logfile: Permission denied

logfileがPermission deniedになってしまう、これはlogfileを絶対パスにしてやればOK

[suusuke@macbook ~]$ sudo su postgres -c 'pg_ctl -D /opt/local/var/db/postgresql83/defaultdb -l /opt/local/var/db/postgresql84/logfile start'
server starting

補足

インストールして追加されたpostgresユーザー情報の確認

[suusuke@macbook ~]$ dscl . -read /Users/postgres
AppleMetaNodeLocation: /Local/Default
GeneratedUID: 8D95D02C-E3FB-4F3B-956B-96320B8FE6CD
NFSHomeDirectory: /opt/local/var/db/postgresql83
Password: *
PrimaryGroupID: 500
RealName:
 PostgreSQL-83 Server
RecordName: postgres
RecordType: dsRecTypeStandard:Users
UniqueID: 500
UserShell: /bin/sh
[suusuke@macbook ~]$ dscl . -read /Groups/postgres
AppleMetaNodeLocation: /Local/Default
GeneratedUID: 8427C813-9996-42F4-9D92-83E57CDA93DA
Password: *
PrimaryGroupID: 500
RealName: postgres
RecordName: postgres
RecordType: dsRecTypeStandard:Groups

ルート権限でsu(switch user)したい場合はと sudo su xxxxx やれば良い事を初めて知った。。。
macでしか使う事は無いと思うけど。

  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。

ads

コメントを残す

*