2015-10-10 12 views
9
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"? 

in esecuzione su localhost dà lo stesso risultato:PostgreSQL smesso di funzionare dopo il riavvio

psql -h localhost                                     ⏎ master ✱ ◼ 
psql: could not connect to server: Connection refused 
    Is the server running on host "localhost" (127.0.0.1) and accepting 
    TCP/IP connections on port 5432? 

Stato del servizio:

sudo service postgresql status                                  ⏎ master ✱ ◼ 
[sudo] password for david: 
● postgresql.service - PostgreSQL RDBMS 
    Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled) 
    Active: active (exited) since Sat 2015-10-10 15:48:54 IDT; 26min ago 
    Process: 5470 ExecStart=/bin/true (code=exited, status=0/SUCCESS) 
Main PID: 5470 (code=exited, status=0/SUCCESS) 
    CGroup: /system.slice/postgresql.service 

Oct 10 15:48:54 david-X48-DS4 systemd[1]: Starting PostgreSQL RDBMS... 
Oct 10 15:48:54 david-X48-DS4 systemd[1]: Started PostgreSQL RDBMS. 
Oct 10 15:49:21 david-X48-DS4 systemd[1]: Started PostgreSQL RDBMS. 
Oct 10 15:51:40 david-X48-DS4 systemd[1]: Started PostgreSQL RDBMS. 
Oct 10 15:51:41 david-X48-DS4 systemd[1]: Started PostgreSQL RDBMS. 

esecuzione sudo netstat -nl | grep postgres non fornisce alcuna conseguenza

sto correndo Xubuntu 15.04

quali dovrebbero essere i miei prossimi passi per la risoluzione dei problemi?

+0

Quando cerco processi, uso $ htop è "un visualizzatore di processi interattivo per Linux". https://en.wikipedia.org/wiki/Htop. Installazione apt-get standard. – Elvn

+0

'ps -ef | grep postgres'? Cosa c'è nei file di registro di PostgreSQL? 'Pg_lsclusters'? –

risposta

0

Ho alcuni suggerimenti che possono aiutare.

Quando si tenta di connettersi a PostgreSQL, provare con: sudo -u postgres psql; il tuo utente potrebbe essere diverso per l'autenticazione peer; quindi controlla lo pg_hba.conf per essere sicuro; questo file si trova nella tua directory $PGDATA.

Un altro suggerimento è che si potrebbe voler controllare il log di avvio e il syslog globale. Il primo è solitamente in $PGDATA come pg_startup.log e il secondo è /var/log/syslog.

4

Yasp (Yet Another Systemd problema)

La systemd integrazione di PostgreSQL in Xenial è alquanto eccentrico. L'unità di servizio postgresql è solo un manichino che dovrebbe attivare l'avvio delle istanze del database reale tramite dipendenze del servizio. Ecco perché dice ExecStart=/bin/true - il comando di avvio dell'unità è /bin/true, ovvero. "non fare nulla, con successo".

Le istanze dispongono di unità di servizio denominate [email protected]<version>-<name>. Potete vedere quelli eseguendo il comando

systemctl list-dependencies postgresql 

dipendenze sono generati dallo script /lib/systemd/system-generators/postgresql-generator per tutte le istanze il cui modalità di avvio è impostato su auto nei loro rispettivi start.conf file sotto /etc/postgresql.

Almeno così è come dovrebbe funzionare. Ogni tanto, però, queste dipendenze smettono di funzionare. Systemd comunicherà allegramente Started PostgreSQL RDBMS. ma in realtà non avrà fatto nulla, con successo.

Così i vostri prossimi passi di risoluzione dei problemi dovrebbero essere:

  • Verificare se le istanze sono elencati per list-dependencies.
  • In tal caso, l'elaborazione delle dipendenze di debug systemd. (Buona fortuna.)
  • Altrimenti controlla i file start.conf delle istanze.
  • Se questi sono corretti, eseguire il debug del generatore di dipendenze.
0

Ho avuto lo stesso problema, ma nel mio caso, è stato causato dall'unità dati non viene rimontata quando il server è stato riavviato.

So che questo è solo uno dei tanti possibili motivi del problema, ma ho pensato che fosse degno di nota! Ho montato l'unità e riavviato postgresql e ora tutto funziona alla grande.

Problemi correlati