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