Ответ 1
Ваша команда не делает то, что вы думаете. Чтобы запустить что-то как системный пользователь postgres
:
sudo -u postgres command
Для запуска команды (также называемой postgres
!):
sudo -u postgres postgres -D /usr/local/var/postgres
Ваша команда делает обратное:
sudo postgres -D /usr/local/var/postgres
Он запускает программу postgres
как root
суперпользователя (sudo
без переключателя -u
), и Postgres не позволяет запускаться с привилегиями суперпользователя по соображениям безопасности. Отсюда сообщение об ошибке.
Если вы собираетесь запустить несколько команд в качестве системных пользователей postgres
, измените пользователя с помощью:
sudo -u postgres -i
... и exit
когда закончите.
Если вы видите это сообщение об ошибке при работе в качестве системных пользователей postgres
, то что-то не так с разрешениями на файл или один из содержащихся каталогов.
postgres не может получить доступ к файлу конфигурации сервера "/usr/local/var/postgres/postgresql.conf": разрешение отклонено /usr/local/var/postgres/postgresql.conf
В заключение:
- Рассмотрите инструкцию в руководстве Postgres.
- Также рассмотрите оболочку
pg_ctl
- илиpg_ctlcluster
в дистрибутивах на основе Debian. - И знать разницу между
su
иsudo
.