0

我在 Ubuntu 16.04 LTS 上使用 PostgreSQL 9.5。我输入时收到以下错误psql

 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"?

在检查登录时/var/log/postgresql/postgresql-9.5-main.log,我看到错误为:

2018-11-26 13:17:41 IST [3508-1] 致命:无法访问私钥文件“/etc/ssl/private/ssl-cert-snakeoil.key”:权限被拒绝

以下是/etc/ssl/privatessl-cert-snakeoil.key文件的权限:

vivek@vivek-ThinkPad-E480:~$ ls -l /etc/ssl
total 36
drwxr-xr-x 2 root root     20480 Nov 22 13:06 certs
-rwxr-xr-x 1 root root     10835 Dec  8  2017 openssl.cnf
drwxr--r-- 2 root ssl-cert  4096 Nov 22 13:06 private

vivek@vivek-ThinkPad-E480:~$ sudo ls -l /etc/ssl/private
total 4
-rw-r----- 1 root ssl-cert 1704 Nov 22 13:06 ssl-cert-snakeoil.key

postgres用户也被添加到组ssl-cert中。

vivek@vivek-ThinkPad-E480:~$ getent group ssl-cert
ssl-cert:x:112:postgres

注意:我发现server.key./var/lib/postgresql/9.5/main

我也在DBA Stackexchange上发布了这个,但还没有回复。

任何人都可以指导我设置权限的正确方向吗?

4

1 回答 1

1

那永远无法工作,并且您的服务器将无法启动,因为操作系统用户postgres无权访问etc/ssl/private.

要允许组ssl-cert中的用户访问目录中的文件,请运行

chmod g+x /etc/ssl/private

当您使用它时,请确保它/etc/ssl具有所需的权限。

要测试一切是否正常,请成为用户postgres并尝试读取文件。

于 2018-11-26T19:56:01.263 回答