PostgreSQL не запускается: "сервер.ключ " имеет групповой или мировой доступ

Whenerver я начну использовать команды в PostgreSQL:

$ sudo /etc/init.d/postgresql start

Pg не запускается. Сообщение об ошибке:

 * Starting PostgreSQL 8.4 database server
 * The PostgreSQL server failed to start. Please check the log output:
2010-01-21 22:10:00 PST FATAL: private key file "server.key" has group or world access
2010-01-21 22:10:00 PST DETAIL: File must be owned by the database user or root, must have no write permission for "group", and must have no permissions for "other".

... и когда я пытаюсь получить доступ psql как postgres пользователь:

$ sudo su postgres
$ psql

это дает мне ошибку:

 could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

6 ответов


Я решил его с помощью ..

1) введите соответствующий каталог (используйте> найдите сервер.ключ)

2) резервное копирование старого сервера.ключевая связь.

3) скопируйте ssl-cert-snakeoil.ключ к серверу.ключ

4-5) измените владельца и группу на postgres

6) убедитесь, что разрешения 700 или 740 (по запросу сообщения об ошибке)

рецепт для моего Ubuntu 12.04 & postgresql-8.3:

sudo cd /var/lib/postgresql/8.3/main/
sudo mv server.key server.key-0
sudo cp /etc/ssl/private/ssl-cert-snakeoil.key server.key
sudo chown postgres server.key
sudo chgrp postgres server.key
sudo chmod 740 server.key
sudo /etc/init.d/postgres-8.3 start

и теперь его работы ! Спасибо за поддержка.


как говорится в сообщении об ошибке, исправьте разрешения для ключевого файла server.key. Сервер работает как пользователь "postgres", который должен владеть файлом. Попробуй!--3-->

#cd <path/to/pgsql/data> 
#chown postgres server.key
#chmod 0640 server.key

как насчет жесткого копирования ключа сервера и оставить его там, где и как он есть.

вместо этого проще:

изменить "сервер.ключ " Ссылка разрешения в каталоге данных PostgreSQL (его расположение, где ссылка на частный сертификат.ключевой файл находится)

# cd /var/lib/postgresql/9.1/main/

to

# chown -R postgres:postgres server.key`

и убедитесь, что оригинальный сертификат в

# /etc/ssl/private/ssl-cert-snakeoil.key

имеет эти свойства, установив их

# chmod 640 ssl-cert-snakeoil.key
# chown root:ssl-cert ssl-cert-snakeoil.key

это решение было протестировано на Debian. Помните, что CentOS может использовать SELinux с расширенным управлением правами пользователя, которое можно просмотреть с помощью

# ls -laZ *

Это случилось со мной, и оказалось, что я ошибочно удалил пользователя postgres из группы "ssl-cert", установил его обратно с

gpasswd-a postgres ssl-сертификат


sudo chown postgres /var/lib/postgresql/8.4/main/server.key

sudo chmod 0640 /var/lib/postgresql/8.4/main/server.key

нажмите вкладку после postgresql, чтобы подтвердить свою версию.


Setthe разрешения /etc/ssl/private до root:ssl-cert. Комментарии этот вопрос заставил меня попробовать это решение.

Примечание: даже жесткий ответ принят, он не решил мою проблему. Чтобы помочь кому-то еще я хотел ответить здесь.