"корневое" выполнение сервера PostgreSQL не допускается
Когда я пытаюсь запустить postgresql, я получаю ошибку:
postgres
Postgres не знает, где найти файл конфигурации сервера.
Вы должны указать опцию вызова --config-file или-D или установить Переменная окружения PGDATA.
Итак, я пытаюсь установить мой конфигурационный файл:
postgres -D /usr/local/var/postgres
И я получаю следующую ошибку:
Postgres не может получить доступ к файлу конфигурации сервера " / usr / local/var/postgres / postgresql.conf": разрешение отказано
Хм, ладно. Далее я пытаюсь выполнить то же самое действие, что и администратор:
sudo postgres -D /usr/local/var/postgres
И я получаю следующую ошибку:
"корневое" выполнение сервера PostgreSQL не допускается.
Сервер должен быть запущен под непривилегированным идентификатором пользователя, чтобы предотвратить возможно нарушение безопасности системы. Смотрите документацию для получения дополнительной информации информация о том, как правильно запустить сервер.
Я поискал в Гугле это сообщение об ошибке, но не смог найти решение.
Может ли кто-нибудь дать некоторое представление об этом?
2 ответа:
Ваша команда не делает то, что вы думаете он делает. Чтобы запустить что-то как системный пользователь
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.конф": В разрешении отказано /usr/местные/ВАР/и Postgres/PostgreSQL версии.conf
В заключение:
- рассмотрим инструкциюв руководстве Postgres .
- также рассмотрим обертку
pg_ctl
- илиpg_ctlcluster
в дистрибутивах, основанных на Debian.- и знать разницу между
su
и ещеsudo
.