我认为在创建 9.3 集群时,我发现了 pg_createcluster 中的一个错误。首先,我的配置是:Debian Squeeze,带有 squeeze-backports 中的 PostgreSQL 9.1 和 apt.postgresql.org(官方存储库)中的 PostgreSQL 9.3。
在已经运行的 9.1 集群旁边安装 9.3 源和 PG 9.3 服务器一切顺利,但在创建新集群时我遇到了以下无法解释的问题。
当创建另一个 9.1 集群时,如下所示:
pg_createcluster --locale=de_DE.UTF-8 9.1 test
集群已创建,并且 snakeoil 证书和密钥被符号链接到 /var/lib/postgresql/9.1/test/,就像man pg_createcluster
告诉我的那样。
但是执行此操作时:
pg_createcluster --locale=de_DE.UTF-8 9.3 test
集群也会创建但无法启动。在默认配置中,ssl 为 true,但 pg_createcluster 不会像 9.1 那样为 snakeoil ssl 证书创建 2 个符号链接。因此,在尝试启动 9.3 集群时,它会中止并抱怨 server.crt 丢失。
有人知道为什么吗?我的意思是,我可以自己用 puppet 创建 2 个符号链接,但这不是最好的解决方案。这是一个错误还是为什么会发生这种情况!?
答案1
这是我的错。从 9.3 版开始,PostgreSQL 不再将文件符号链接到数据文件夹,而是使用以下两个配置选项 - 这两个选项更简洁。
ssl_cert_file = '/etc/ssl/certs/ssl-cert-snakeoil.pem' # (change requires restart) ssl_key_file = '/etc/ssl/private/ssl-cert-snakeoil.key' # (change requires restart)