個人的には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でしか使う事は無いと思うけど。