Назад | Перейти на главную страницу

Какие должны быть разрешения для файлов PostgreSQL / данных?

Я установил Postgres 9.3 из двоичного файла osX.
Когда я попытался перезапустить с помощью 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.

В моем случае решение было ПЕРВЫМ для переключения пользователя на пользователя postgres на уровне ОС:

$ sudo su postgres

ТО, чтобы запустить команду перезапуска:

$ pg_ctl restart