Я запускаю postgresql 9.1 на ubuntu 12.04.
Я хотел изменить каталог данных postgres. Итак, я создал новый каталог и запустил initdb. Я также сделал символические ссылки сертификата на каталог данных.
Но postgres все еще не может найти root.crt:
sudo /etc/init.d/postgresql start
* Starting PostgreSQL 9.1 database server * The PostgreSQL server failed to start. Please check the log output:
2012-08-17 16:02:33 CEST FATAL: could not load root certificate file "root.crt": no SSL error reported
Что я делаю не так? Директория данных выглядит так:
ls -la
total 92
drwx------ 13 postgres postgres 4096 Aug 16 14:36 .
drwxr-xr-x 3 root root 4096 Aug 16 13:57 ..
drwx------ 5 postgres postgres 4096 Aug 16 14:00 base
drwx------ 2 postgres postgres 4096 Aug 16 14:36 global
drwx------ 2 postgres postgres 4096 Aug 16 14:00 pg_clog
-rw------- 1 postgres postgres 4476 Aug 16 14:00 pg_hba.conf
-rw------- 1 postgres postgres 1636 Aug 16 14:00 pg_ident.conf
drwx------ 4 postgres postgres 4096 Aug 16 14:00 pg_multixact
drwx------ 2 postgres postgres 4096 Aug 16 14:35 pg_notify
drwx------ 2 postgres postgres 4096 Aug 16 14:00 pg_serial
drwx------ 2 postgres postgres 4096 Aug 16 14:36 pg_stat_tmp
drwx------ 2 postgres postgres 4096 Aug 16 14:00 pg_subtrans
drwx------ 2 postgres postgres 4096 Aug 16 14:00 pg_tblspc
drwx------ 2 postgres postgres 4096 Aug 16 14:00 pg_twophase
-rw------- 1 postgres postgres 4 Aug 16 14:00 PG_VERSION
drwx------ 3 postgres postgres 4096 Aug 16 14:00 pg_xlog
-rw------- 1 postgres postgres 19169 Aug 16 14:00 postgresql.conf
-rw------- 1 postgres postgres 126 Aug 16 14:35 postmaster.opts
lrwxrwxrwx 1 postgres postgres 31 Aug 16 14:13 root.crt -> /etc/postgresql-common/root.crt
lrwxrwxrwx 1 postgres postgres 36 Aug 16 14:13 server.crt -> /etc/ssl/certs/ssl-cert-snakeoil.pem
lrwxrwxrwx 1 postgres postgres 38 Aug 16 14:13 server.key -> /etc/ssl/private/ssl-cert-snakeoil.key
так что root.crt должен быть там и быть видимым.
Какие-либо предложения?
Спасибо, Чида, за подсказку!
Результат был:
sudo -u postgres cat /etc/postgresql-common/root.crt
This is a dummy root certificate file for PostgreSQL. To enable client side
authentication, add some certificates to it. Client certificates must be signed
with any certificate in this file to be accepted.
A reasonable choice is to just symlink this file to
/etc/ssl/certs/ssl-cert-snakeoil.pem; in this case, client certificates need to
be signed by the postgresql server certificate, which might be desirable in
many cases. See
file:///usr/share/doc/postgresql-doc-8.3/html/ssl-tcp.html
for details (in package postgresql-doc-8.3).
Поэтому я указал root.crt в каталоге данных на /etc/ssl/certs/ssl-cert-snakeoil.pem:
ln -s /etc/ssl/certs/ssl-cert-snakeoil.pem root.crt
И тогда postgresql запустился без ошибок!
Я столкнулся с этой проблемой, поиграл с символической ссылкой и фактическими разрешениями / etc / ssl / * directory / file и все еще продолжал получать эту ошибку.
В конце концов, я исправил это, удалив символические ссылки в / var / lib / postgresql / * / main и скопировав файлы .pem и .key из соответствующих каталогов в / etc / ssl, изменив их имена на те, которые были связаны с именем символической ссылки. , установил владельца группы на ssl-cert и смог наконец запустить резервную копию базы данных.