PostgreSQL: Why psql can't connect to server?

前端 未结 22 2192
情书的邮戳
情书的邮戳 2020-12-07 10:40

I typed psql and I get this:

psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    con         


        
22条回答
  •  情书的邮戳
    2020-12-07 11:10

    If there is no error in starting the Postgres service, follow these steps

    Step 1: Running pg_lsclusters will list all the Postgres clusters running on your device

    eg:

    Ver Cluster Port Status Owner    Data directory               Log file
    9.6 main    5432 online postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log
    

    most probably the status will be down in your case. If not restart PostgreSQL service

    Step 2: Restart the pg_ctlcluster

    #format is pg_ctlcluster   
    sudo pg_ctlcluster 9.6 main start
    
    #restart PostgreSQL service
    sudo service postgresql restart
    

    Step 3: Step 2 failed and threw an error

    If restarting pg_lsclusters was not successful, it will throw an error. My error was(You can see the errors in the logs /var/log/postgresql/postgresql-9.6-main.log)

    FATAL: could not access private key file "/etc/ssl/private/ssl-cert-snakeoil.key": Permission denied
    Try adding `postgres` user to the group `ssl-cert`
    

    Step 4: check ownership of postgres

    Make sure that postgres is the owner of /var/lib/postgresql/version_no/main eg: sudo chown postgres -R /var/lib/postgresql/9.6/main/

    Step 5: Check postgres user belongs to ssl-cert user group

    It happened to me and it turned out that I removed erroneously the Postgres user from "ssl-cert" group. Run the below code to fix the user group issue and for fixing the permissions

    #set user to group back with
    sudo gpasswd -a postgres ssl-cert
    
    # Fixed ownership and mode
    sudo chown root:ssl-cert  /etc/ssl/private/ssl-cert-snakeoil.key
    sudo chmod 740 /etc/ssl/private/ssl-cert-snakeoil.key
    
    # now postgresql starts! (and install command doesn't fail anymore)
    sudo service postgresql restart
    

提交回复
热议问题