我在Ubuntu 16.04 LTS上使用PostgreSQL 9.5。 我输入时收到以下错误 psql :
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 ,我认为错误如下:
/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/private 和 ssl-cert-snakeoil.key 文件夹:
/etc/ssl/private
ssl-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 .
postgres
ssl-cert
vivek@vivek-ThinkPad-E480:~$ getent group ssl-cert ssl-cert:x:112:postgres
注: 我发现没有 server.key 存在于 /var/lib/postgresql/9.5/main .
server.key
/var/lib/postgresql/9.5/main
我也把这个贴在 DBA Stackexchange 但目前还没有回应。
在设置权限方面,有人能指导我走正确的方向吗?
因为操作系统用户 postgres 没有访问中文件的权限 etc/ssl/private .
etc/ssl/private
允许组中的用户 ssl-cert 要访问目录中的文件,请运行
chmod g+x /etc/ssl/private
当你在那里的时候,确保 /etc/ssl 具有所需的权限。
/etc/ssl
测试一切是否正常,成为用户 后格雷斯 并尝试读取文件。
后格雷斯