個人的にはMySQLの方が好きなんですが、開発環境としてPostgreSQLが必要になったのでその時のインストールメモ。
※euc-jpでcreatedbできなくて、3回インストール、アンインストールを繰り返しました・・・
インストール
今回は、PostgresSQL8.3をインストールする必要が有ったので、portで検索してからインストール。
1 2 3 | [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サーバとして必要な機能はこれに含まれています。 |
という感じです。
自動起動・解除
1 2 | [suusuke@macbook ~]$ sudo port load postgresql83-server [suusuke@macbook ~]$ sudo launchctl list | grep macports ← 確認 |
解除する場合は
1 | [suusuke@macbook ~]$ sudo port unload postgresql83-server |
領域確保と初期化
portsでインストールするとログに書いてあるのでそのまま実行。
1 2 | [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の場合は
1 | [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)。
1 | [suusuke@macbook ~]$ sudo su postgres -c '/opt/local/lib/postgresql83/bin/initdb -D /opt/local/var/db/postgresql83/defaultdb' |
スタート・ストップ
1 2 | [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' |
インストールログに起動方法はもう一つあるが
1 2 3 4 | [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
1 2 | [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ユーザー情報の確認
1 2 3 4 5 6 7 8 9 10 11 12 | [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 |
1 2 3 4 5 6 7 8 | [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でしか使う事は無いと思うけど。