2012-07-15 8 views
5

私は自作経由でPostgreSQLのインストールされているとクラッシュした後、私はもう、サーバーを起動することはできません。..は自作のPostgreSQLは、Mac OS Xにインストールを開始することはできません - 「アクセス許可が拒否されました」

私がしなければ

$ pg_ctl start 

私は私が行う場合

pg_ctl: no database directory specified and environment variable PGDATA unset 

を取得

$ pg_ctl -D /Library/PostgreSQL/data start 

私は

pg_ctl: could not open PID file "/Library/PostgreSQL/data/postmaster.pid": Permission denied 

すべてがこの、青の外にうまく働いた後、...た取得します。

上記のデータフォルダがpostgresユーザと皆のための「なし」のための「すべて」に設定された権限を持っている...

パスが(私の〜/ .bash_profileの中で)

export PATH=/usr/local/bin:$PATH 
+0

これはapple.stackexchange.comまたはdba.stackexchange.comに移動するのではなく、閉じていたことを驚かせました。 –

答えて

6

あなたを正常に見えます最初にPgを起動しました。自作があなたのために起動するようにしましたか、または手動でpg_ctlで起動しましたか?私はあなたがたぶんpg_ctlを経由するのではなく、自作スクリプトを使用してPgを起動し、そして/またはlaunchdを使用して起動し停止する必要があると推測しています。私はhomebrew(またはMac OS X多く)を使っていませんが、Pgの自作インストールは通常launchd~/Library/LaunchAgents/org.postgresql.postgres.plistで開始され停止されていることがわかります。

あなたはそれを手動で管理する場合:

自作通常のPostgreSQLを実行するとはどのようなユーザーですか? pg_ctl経由でPgを起動する場合は、適切なユーザーとして実行する必要があります。ここで私が見た他の議論のあいまいな記憶から、おそらくpostgresまたはpostgres_という名前のユーザーでしょう。使用してダブルチェックは:

ls -ld /Library/PostgreSQL/data 

と所有するユーザが何であるかを参照し、実行します。

sudo -u postgres_ pg_ctl -D /Library/PostgreSQL/data start 

... DATADIRの所有者と "postgres_" を置き換えます。

権限のエラーが表示される理由は、おそらく再帰的に変更を適用していないと思われるからです。しないでください。正しいユーザーとしてPgを実行してください。

関連する問題