web-dev-qa-db-ja.com

PostgreSQLの/ dataファイルに対する権限はどのようにする必要がありますか?

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  

誰がこのファイルを所有し、どのようなアクセス許可が必要ですか?

4
BryanWheelock

すべてのデータファイルとその他の関連するものを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に必要なパスを調整します。

5
Eirik Toft

私の場合、解決策は最初にユーザーをosレベルのpostgresユーザーに切り替えることでした:

$ Sudo su postgres

次に、再起動コマンドを実行します。

$ pg_ctl restart
0