代码之家  ›  专栏  ›  技术社区  ›  nice_dev

无法在PostgreSQL 9.5中运行psql

  •  0
  • nice_dev  · 技术社区  · 7 年前

    我在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/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 .

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

    注: 我发现没有 server.key 存在于 /var/lib/postgresql/9.5/main .

    我也把这个贴在 DBA Stackexchange 但目前还没有回应。

    在设置权限方面,有人能指导我走正确的方向吗?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Laurenz Albe    7 年前

    因为操作系统用户 postgres 没有访问中文件的权限 etc/ssl/private .

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

    chmod g+x /etc/ssl/private
    

    当你在那里的时候,确保 /etc/ssl 具有所需的权限。

    测试一切是否正常,成为用户 后格雷斯 并尝试读取文件。

    推荐文章