PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

psql:impossibile connettersi al server:nessun file o directory di questo tipo (Mac OS X)

ATTENZIONE:Se elimini postmaster.pid senza assicurarti che non ci siano realmente postgres processi che ti eseguono, potrebbero danneggiare in modo permanente il tuo database . (PostgreSQL dovrebbe eliminarlo automaticamente se il postmaster è uscito.).

SOLUZIONE:Questo ha risolto il problema:ho eliminato questo file e quindi 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 che era 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, quindi il file non esisteva, ma ovviamente psql "volevo" o "pensavo che fosse lì".

  3. Ho dato un'occhiata ai log del mio 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 blocco del mio macbook e il riavvio forzato abbiano fatto pensare a Postgres che i suoi processi fossero ancora in esecuzione anche dopo il riavvio. Eliminazione di questo file risolta. Spero che questo aiuti gli altri! Molte persone hanno problemi simili, ma la maggior parte delle risposte riguardava i permessi dei file, mentre nel mio caso le cose erano diverse.