PostgreSQL root.crt不加载

我在Ubuntu 12.04上运行postgresql 9.1。

我想改变postgres的数据目录。 所以我创build了一个新的目录并运行initdb。 我也做了证书的数据目录的符号链接。

但仍然postgres不能findroot.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 

我究竟做错了什么? 数据directoy看起来像这样:

 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应该在那里,可见。

有什么build议么?

谢谢你的提示!

输出是:

  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 / *目录/文件的权限,仍然不断收到此错误。

最后,我通过删除/ var / lib / postgresql / * / main中的符号链接并将.pem和.key文件复制到/ etc / ssl中的相应目录中,将其名称更改为任何相关的符号链接名称,将组所有者设置为ssl-cert,并能够获取数据库,最终启动备份。