OsXバイナリからPostgres 9.3をインストールしました。
pg_ctl restartを使用して再起動しようとすると、次のエラーが発生しました:
$ pg_ctl restart
pg_ctl: could not open PID file "/Library/PostgreSQL/9.3/data/postmaster.pid": Permission denied
Bryan@bryans-mbp Fri Jun 13 13:41:24 ~
$ Sudo ls -la /Library/PostgreSQL/9.3/data/postmaster.pid
Password:
-rw------- 1 postgres daemon 75 Jun 11 10:36 /Library/PostgreSQL/9.3/data/postmaster.pid
誰がこのファイルを所有し、どのようなアクセス許可が必要ですか?
すべてのデータファイルとその他の関連するものをpostgres
ユーザーが所有する必要があるため、権限は正しいです。ここでの問題は、postgres
デーモンがpostgres
ユーザーとして実行されていないことだと思います。
Postgresデーモン(postmaster)がどのユーザーとして実行されているかを確認するには、次のコマンドを実行します。
ほとんどの* NIX(Solarisと同様):
ps -ef | grep postgres
Linux
ps aux | grep postgres
Rootとして実行していることを確認します。
Sudo -u postgres pg_ctl -D /Library/PostgreSQL/9.3/data start
pg_ctl
およびSudo
に必要なパスを調整します。
私の場合、解決策は最初にユーザーをosレベルのpostgresユーザーに切り替えることでした:
$ Sudo su postgres
次に、再起動コマンドを実行します。
$ pg_ctl restart