GNU/Linux >> Linux Esercitazione >  >> Linux

Come posso accedere a Postgres quando ricevo un errore su /var/run/postgresql/.s.PGSQL.5432?

Se il tuo servizio Postgres è attivo e funzionante senza errori o non ci sono errori nell'avvio del servizio Postgres e continui a ricevere l'errore menzionato, segui questi passaggi

Passaggio 1:eseguire pg_lsclusters elencherà tutti i cluster postgres in esecuzione sul tuo dispositivo

es:

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

molto probabilmente lo stato sarà inattivo nel tuo caso. Prova a riavviare i cluster e il servizio Postgres

Passaggio 2:riavvia pg_ctlcluster

#format is pg_ctlcluster <version> <cluster> <action>
sudo pg_ctlcluster 9.6 main start

#restart postgresql service
sudo service postgresql restart

Passaggio 3:il passaggio 2 non è riuscito e ha generato un errore

Se questo processo non va a buon fine genererà l'errore. Il mio errore era(Puoi vedere il log degli errori su /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`

Passaggio 4:controlla la proprietà di postgres

Assicurati che postgres è il proprietario di /var/lib/postgresql/version_no/main es:sudo chown postgres -R /var/lib/postgresql/9.6/main/

Passaggio 5:verifica che l'utente Postgres appartenga al gruppo utenti ssl-cert

È successo a me e si è scoperto che ho rimosso erroneamente l'utente Postgres dal gruppo "ssl-cert". Esegui il codice seguente per risolvere il problema del gruppo utenti e correggere le autorizzazioni

#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

sudo service postgresql restart

Probabilmente hai installato più versioni di PostgreSQL. In tal caso, l'altra versione probabilmente ha come impostazione predefinita unix_socket_directories = '/tmp/' ma il libpq il tuo psql è collegato a probabilmente il valore predefinito è /var/run/postgresql/ .

Prova

psql -h /tmp

Se funziona, il problema è quanto sopra. Puoi aggiungere export PGHOST=/tmp al tuo .bashrc per modificare l'impostazione predefinita in locale per il tuo utente.

In caso contrario, non funziona, assicurati che PostgreSQL sia effettivamente in esecuzione

ps aux |grep postgres

e se no, avvialo. Come dipende da come l'hai installato, ma sarà tramite service o systemctl comando(i) se hai installato utilizzando i pacchetti.


psql:impossibile connettersi al server:Nessun file o directory di questo tipo Il server è in esecuzione localmente e accetta connessioni su socket di dominio Unix"/var/run/postgresql/.s.PGSQL.5432"?

Questo errore generalmente indica che il server non è in esecuzione. Basato su dpkg -l output e il thread di commenti, era dovuto al postgresql-9.5 pacchetto principale viene in qualche modo disinstallato. Poiché la disinstallazione non è stata chiamata con --purge opzione a dpkg , i dati e i file di configurazione sono ancora lì, quindi apt-get install postgresql-9.5 può risolvere il problema.


Linux
  1. In che modo Linux gestisce più separatori di percorsi consecutivi (/home////nomeutente///file)?

  2. Bash =~ Regex e HTTPS://regex101.com/?

  3. Quanto sono portatili /dev/stdin, /dev/stdout e /dev/stderr?

  4. Kubuntu mostra un errore all'accesso (file:///usr/share/sddm//themes/breeze/main.qml:no Such File Or Directory)?

  5. Ubuntu 14.04 "non ha ricevuto un file Uri di riproduzione in entrata::///*"?

Come ottengo il percorso di un processo in Unix/Linux

Installa i binari in /bin, /sbin, /usr/bin e /usr/sbin, interazioni con --prefix e DESTDIR

Django static_root in /var/www/... - nessuna autorizzazione a collectstatic

Come scoprire da quale cartella è in esecuzione un processo?

unix:///var/run/supervisor.sock nessun file di questo tipo

I siti web dovrebbero vivere in /var/ o /usr/ in base all'utilizzo consigliato?