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
. Комментарии этот вопрос заставил меня попробовать это решение.
Примечание: даже жесткий ответ принят, он не решил мою проблему. Чтобы помочь кому-то еще я хотел ответить здесь.