psql: imansible collegarsi al server: nessun file o directory (Mac OS X)

Dopo aver riavviato il mio Mac, ho ricevuto il temuto errore Postgres:

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"? 

La ragione per cui questo è accaduto è perché il mio macbook si è bloccato completamente a causa di un problema non correlato e ho dovuto eseguire un riavvio con il pulsante di accensione. Dopo il riavvio non è stato ansible avviare Postgres a causa di questo errore.

ATTENZIONE: se cancelli postmaster.pid senza esserti assicurato che non ci siano realmente processi postgres esecuzione, potresti danneggiare in modo permanente il tuo database . (PostgreSQL dovrebbe cancellarlo automaticamente se il postmaster è uscito).

SOLUZIONE: questo ha risolto il problema – Ho cancellato questo file, e poi tutto ha funzionato!

 /usr/local/var/postgres/postmaster.pid 

ed ecco come ho capito perché questo doveva essere cancellato.

  1. Ho usato il seguente comando per vedere se c’erano processi PG in esecuzione. per me non ce n’erano, non potevo nemmeno avviare il server PG:

     ps auxw | grep post 
  2. Ho cercato il file .s.PGSQL.5432 presente nel messaggio di errore sopra. ho usato il seguente comando:

     sudo find / -name .s.PGSQL.5432 -ls 

    questo non ha mostrato nulla dopo aver cercato su tutto il mio computer in modo che il file non esistesse, ma ovviamente psql “voleva farlo” o “pensava che fosse lì”.

  3. Ho dato un’occhiata ai miei log del server e ho visto il seguente errore:

     cat /usr/local/var/postgres/server.log 

    alla fine del log del server vedo il seguente errore:

     FATAL: pre-existing shared memory block (key 5432001, ID 65538) is still in use HINT: If you're sure there are no old server processes still running, remove the shared memory block or just delete the file "postmaster.pid". 
  4. Seguendo il consiglio nel messaggio di errore, ho eliminato il file postmaster.pid nella stessa directory di server.log. Questo ha risolto il problema e sono stato in grado di riavviare.

Quindi, sembra che il mio macbook si sia bloccato e sia stato riavviato a causa del fatto che Postgres pensava che i suoi processi fossero ancora in esecuzione anche dopo il riavvio. Eliminazione di questo file risolto. Spero che questo aiuti gli altri! Molte persone hanno problemi simili, ma la maggior parte delle risposte ha avuto a che fare con i permessi dei file, mentre nel mio caso le cose erano diverse.

SE hai installato tramite homebrew di usare il comando seguente

 brew services stop postgresql brew services start postgresql 

Se il tuo ubuntu il seguente comando sarà funzionante, basta riavviare il server eseguendo

 $sudo service postgresql restart 

o

 sudo /etc/init.d/postgresql restart 

Nessuno dei precedenti ha funzionato per me. Ho dovuto reinstallare Postgres nel seguente modo:

  • Disinstallare postgresql con brew: brew uninstall postgresql
  • brew doctor (risolvi qualunque cosa sia qui)
  • brew prune
  • Rimuovi tutte le cartelle di Postgres:

    • rm -r /usr/local/var/postgres
    • rm -r /Users//Library/Application\ Support/Postgres
  • Reinstallare postgresql con brew: brew install postgresql

  • Avvia server: i brew services start postgresql
  • Ora dovresti creare i tuoi database … ( createdb )

Ciao mondo 🙂
Il modo migliore ma strano per me era fare le cose successive.

1) Scarica postgres93.app o altra versione. Aggiungi questa app in / Applicazioni / cartella.

2) Aggiungi una riga (comando) nel file .bash_profile (che si trova nella mia home directory):

  export PATH = / Applicazioni / Postgres93.app / Contenuti / MacOS / bin /: $ PATH 

È un PATH to psql di Postgres93.app . La riga (comando) viene eseguita ogni volta che viene avviata la console.

3) Avvia Postgres93.app da /Applications/ cartella. Avvia un server locale (la porta è “5432” e l’host è “localhost”).

4) Dopo tutte queste manipolazioni sono stato contento di eseguire $ createuser -SRDP user_name e altri comandi e vedere che ha funzionato! Postgres93.app può essere eseguito per essere eseguito ogni volta che si avvia il sistema.

5) Inoltre, se vuoi vedere graficamente i tuoi database, devi installare PG Commander.app . È un buon modo per vedere il tuo DB postgres come una bella tabella di dati

Naturalmente, è utile solo per il server locale. Sarò felice se queste istruzioni aiuteranno gli altri che hanno affrontato questo problema.

Questo problema ha molte fonti e quindi molte risposte. Ho provato ognuno di loro.

1) Se si verifica un arresto anomalo di qualche tipo, è probabile che la rimozione del file /usr/local/var/postgres/postmaster.pid sia richiesta poiché Postgres potrebbe non averlo gestito correttamente. Ma assicurati che nessun processo sia in esecuzione.

2) Craig Ringer ha sottolineato in altri post che il bundling di Apple di postgreSQL porta a problemi di installazione di pg gem. L’ impostazione della variabile d’ambiente PATH è una soluzione.

3) Un’altra soluzione, è disinstallare e reinstallare la gem. Potrebbe essere necessario anche un aggiornamento della birra.

Se incappi in questo post, se riesci a individuare una delle fonti, risparmierai tempo …

se il tuo postmaster.pid è sparito e non puoi riavviarlo o altro, fai questo:

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

come spiegato qui inizialmente

Stavo affrontando un problema simile qui ho risolto questo problema come di seguito.

In realtà il processo postgres è morto, per vedere lo stato di postgres eseguire il seguente comando

 sudo /etc/init.d/postgres status 

Dice che il processo è morto. “Basta avviare il processo

 sudo /etc/init.d/postgres start 

Per me, la soluzione è stata semplicemente riavviare il mio computer. Per prima cosa ho provato a riavviarlo con i servizi Brew e quando non funzionava, il riavvio sembrava la migliore opzione da provare prima di esaminare alcune delle soluzioni più coinvolte. Tutto ha funzionato come dovrebbe dopo.

Il mio problema è stato che stavo usando Gas Mask (un file manager di host per Mac), e non avevo una voce per localhost nel file hosts che stavo usando.

Ho aggiunto:

 127.0.0.1 localhost 

E questo ha risolto il mio problema.

Questo è successo a me dopo che il mio Mac (High Sierra) si è bloccato e ho dovuto riavviarlo manualmente (premere e tenere premuto il pulsante di accensione). Tutto quello che dovevo fare per rimediare era un nuovo inizio.

Forse questo non è correlato ma un errore simile appare quando si aggiorna postgre a una versione principale usando brew ; usando brew info postgresql scoperto questo che ha aiutato:

 To migrate existing data from a previous major version of PostgreSQL run: brew postgresql-upgrade-database 

Ho dovuto cercare questo post più volte per risolvere questo problema. C’è un’altra correzione, che si applica anche a problemi simili con altri programmi in esecuzione.

Ho appena scoperto che puoi usare i seguenti due comandi.

$ top

Questo mostrerà tutte le azioni attualmente in esecuzione con i loro numeri pid. Quando trovi postgres e il pid associato

$ kill pid_number

Ho appena avuto lo stesso problema di come ho messo la mia macchina ( ubuntu ) per l’aggiornamento e ho ottenuto l’errore seguente:

imansible connettersi al server: Nessun file o directory di questo tipo Il server è in esecuzione localmente e accetta le connessioni sul socket di dominio Unix “/var/run/postgresql/.s.PGSQL.5432”?

Dopo aver completato il processo di aggiornamento quando riavvio il mio errore di sistema andato. E il suo lavoro è come il fascino di prima .. Immagino che questo sia accaduto mentre PG stava aggiornando e un altro processo è iniziato.

SUPER NEWBIE ALERT: Sto solo imparando lo sviluppo web e il particolare tutorial che stavo seguendo ha detto che devo installare Postgres ma in realtà non ho menzionato che devo eseguirlo … Una volta che ho aperto l’applicazione Postgres, tutto andava bene e Dandy.

La risposta di @Jagdish Barabari mi ha dato l’indizio di cui avevo bisogno per risolvere questo problema. Abbiamo scoperto che c’erano due versioni di postgresql installate mentre una sola era in esecuzione. L’eliminazione di tutti i file postgresql e la reinstallazione dell’ultima versione hanno risolto il problema per me.

Le cause di questo errore sono molte, quindi per prima cosa individuare il file di log e controllarlo per ottenere indizi. Potrebbe essere in /usr/local/var/log/postgres.log o /usr/local/var/postgres/server.log o eventualmente altrove. Se hai installato con Homebrew puoi trovare la posizione in ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist .

Non sono del tutto sicuro del perché, ma l’installazione di Postgres si è un po ‘avvitata e alcuni file sono stati cancellati con conseguente errore dell’OP.

Nonostante il fatto che sono in grado di eseguire comandi come brew service retart postgres e vedere i messaggi corretti, questo errore persisteva.

Ho esaminato la documentazione di Postgres e ho scoperto che il mio file /usr/local/var/postgres era completamente vuoto. Quindi ho eseguito quanto segue:

 initdb /usr/local/var/postgres 

Sembra che alcune configurazioni abbiano avuto luogo con quel comando.

Quindi mi ha chiesto di eseguire questo:

 postgres -D /usr/local/var/postgres 

E questo mi ha detto che esiste già un file postmaster.pid.

Avevo solo bisogno di sapere se la birra sarebbe stata in grado di raccogliere le configurazioni che ho appena eseguito, quindi l’ho testato.

 ls /usr/local/var/postgres 

Questo mi ha mostrato un file postmaster.pid. Poi ho fatto brew services stop postgresql e il file postmaster.pid è scomparso. Poi ho brew services start postgresql , e VIOLA, il file è riapparso.

Poi sono andato avanti e ho eseguito la mia app, che in effetti ha trovato il server, tuttavia i miei database sembrano scomparsi.

Sebbene io sappia che potrebbero non esserci affatto andati – la nuova inizializzazione che ho fatto potrebbe aver creato una nuova area dati, e la vecchia non viene indicata. Dovrei vedere dove si trova e puntare su di nuovo o semplicemente creare nuovamente i miei database.

Spero che questo ti aiuti! Leggere i documenti postgres mi ha aiutato molto. Odio leggere le risposte che sono come “Incolla questo in esso funziona!” perché non so cosa diavolo sta succedendo e perché.