Не удалось запустить сервер PostgreSQL после изменения файла postgresql.conf с помощью команды sudo - PullRequest
5 голосов
/ 14 марта 2012

Я хотел изменить параметр "shared_buffers" в моем файле postgresql.conf.

Проблема в том, что я использовал команду sudo, и она дала право владения корню.

-rw-rw-rw-   1 root root  13661 Mar 14 15:36 postgresql.conf

Затем я использовал следующую команду, чтобы вернуть владение владельцу почты:

sudo chown postgres:postgres /var/lib/pgsql/data/postgresql.conf

Итак, я попробовал команду:

postgres -D /var/lib/pgsql/data

Я был очень удивлен, получив следующее сообщение об ошибке

postgres cannot access the server configuration file "/var/lib/pgsql/data/postgresql.conf": Permission denied

ниже id результат команды "ls" в каталоге, созданном для postgreSQL:

sudo ls -l /var/lib/pgsql/data/
total 208
drwx------  19 postgres postgres   4096 Mar 13 17:23 base
drwx------   2 postgres postgres   4096 Mar 14 14:30 global
drwx------   2 postgres postgres   4096 Mar  5 14:26 pg_clog
-rw-------   1 postgres postgres   3365 Mar  1  2006 pg_hba.conf
-rw-------   1 postgres postgres   3182 Mar  1  2006 pg_hba.conf.old
-rw-------   1 postgres postgres   1460 Feb 24  2006 pg_ident.conf
drwx------   2 postgres postgres 139264 Mar 14 00:00 pg_log
drwx------   4 postgres postgres   4096 Feb 24  2006 pg_multixact
drwx------   2 postgres postgres   4096 Mar 14 10:42 pg_subtrans
drwx------   2 postgres postgres   4096 Feb 24  2006 pg_tblspc
drwx------   2 postgres postgres   4096 Feb 24  2006 pg_twophase
-rw-------   1 postgres postgres      4 Feb 24  2006 PG_VERSION
drwx------   3 postgres postgres   4096 Mar 14 14:30 pg_xlog
-rw-rw-rw-   1 postgres postgres  13661 Mar 14 15:36 postgresql.conf
-rw-------   1 postgres postgres     49 Jan  2 17:15 postmaster.opts

Если у кого-то есть идея, можно было бы решить эту проблему.

Заранее спасибо.

Fred

Ответы [ 2 ]

8 голосов
/ 14 марта 2012

Проверьте, как работает SELinux:

# sestatus

Если он находится в принудительном режиме, проверьте журнал:

# less /var/log/audit/audit.log

Если вы обнаружите блокировку SELinux, то временно отключите SELinux только для подтверждениявиновник:

# setenforce 0

Теперь попробуйте запустить сервер.Если это работает, то включите SELinux:

# setenforce 1

Найдите, как восстановить настройки SELinux для этого файла.

1 голос
/ 05 сентября 2014

Я получил ту же ошибку сразу после новой установки.
Сначала биты режима файлов по умолчанию для всех файлов в /var/lib/pgsql/data/ устанавливаются на 600, а ваш postgresql.conf имеет 666. Это не проблема в данном случае, но хорошо, чтобы все было как есть.
Я не знаком с дистрибутивом RedHat, но из комментариев кажется, что это не проблема с SELinux.
На моем Fedora 20 работает:

$ systemctl start postgresql.service

, кажется, запустить сервер.

И если вы хотите выполнить некоторые команды в PosgtreSQL впервые - например, создать своего собственного пользователя для ex. Вы можете найти этот вопрос полезным: https://serverfault.com/questions/110154/whats-the-default-superuser-username-password-for-postgres-after-a-new-install

...