Я установил 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