2016-05-18 52 views
8

Prima di tutto, si prega di notare che ho trovato diverse domande simili su Stack Overflow e articoli in tutto il web, ma nessuno di coloro che mi ha aiutato a risolvere il mio problema:Il server è in esecuzione su host "localhost" (:: 1) e accetta connessioni TCP/IP sulla porta 5432?

Ora, qui è il problema:

  • Ho un'app Rails che funziona come un fascino.
  • Con il mio collaboratore, usiamo GitHub per lavorare insieme.
  • Abbiamo un ramo master e uno mvp.
  • Ho aggiornato di recente la mia versione git con Homebrew (Mac).
  • Usiamo Foreman per avviare la nostra app localmente.

Ora, quando provo a lanciare l'applicazione a livello locale, ottengo il seguente errore:

PG::ConnectionBad at/
could not connect to server: Connection refused 
    Is the server running on host "localhost" (::1) and accepting 
    TCP/IP connections on port 5432? 
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? 

ho provato a riavviare il mio computer più volte.

Ho anche controllato il contenuto di /usr/local/var/postgres:

PG_VERSION  pg_dynshmem  pg_multixact pg_snapshots pg_tblspc  postgresql.conf 
base   pg_hba.conf  pg_notify  pg_stat   pg_twophase  postmaster.opts 
global   pg_ident.conf pg_replslot  pg_stat_tmp  pg_xlog   server.log 
pg_clog   pg_logical  pg_serial  pg_subtrans  postgresql.auto.conf 

Come si può vedere, non v'è alcuna postmaster.pid file in là.

Qualche idea su come risolvere il problema?

+0

Puoi aggiornare la questione con il contenuto di 'postgresql.conf'? – Pavan

risposta

16

Probabilmente hai esaurito la batteria e il tuo server postgresql non si è spento correttamente.

La soluzione più semplice è quello di scaricare l'applicazione ufficiale di PostgreSQL e lanciarlo: sarà forzare il server per avviare (http://postgresapp.com/)

+1

Grazie per la risposta. Ho appena scaricato l'app e l'ho lanciata. Se lo spengo prima di avviare il mio server, ho ancora lo stesso errore. Se non lo spengo, ricevo un messaggio di errore che indica che il mio "database non esiste". Questo può essere correlato? –

+0

Se il tuo database non esiste, dovresti eseguire rake db: create. Ma questo probabilmente non è correlato ... Hai appena fatto un fork di un repo o qualcosa del genere? Non dovresti spegnerlo prima di avviare il tuo server usando 'rails s' !! L'app deve essere in esecuzione per tutto il tempo in cui desideri accedere al tuo sito su un host locale –

+0

Ok. No, non ho biforcato un repo, è lo stesso repo con cui stavo lavorando. Ma ho eseguito 'git fetch', forse questo è il problema. –

9

Potrebbe essere semplice come il servizio PostgreSQL è verso il basso. Prova a correre:

sudo service postgresql start 

che ha risolto il problema per me.

+0

Grazie! questo mi aiuta !! –

3

questo ha funzionato nel mio caso:

brew uninstall postgresql 
rm -fr /usr/local/var/postgres/ 
brew install postgresql 
10

corsa postgres -D /usr/local/var/postgres e si dovrebbe vedere qualcosa di simile:

FATAL: lock file "postmaster.pid" already exists 
HINT: Is another postmaster (PID 379) running in data directory "/usr/local/var/postgres"? 

Poi gestita kill -9 PID in SUGGERIMENTO

e si dovrebbe essere a posto.

+0

Puoi migliorare la formattazione della tua risposta. – Masoud

+0

La migliore soluzione per il mio caso, ovvero che la macchina si è arrestata in modo imprevisto e il riavvio del servizio non ha risolto il problema: grazie! –

0

Spesso incontro questo problema su Windows, il modo in cui ho risolto il problema è Servizio: fare clic su Server database PostgreSQL 8.3 - Fai clic sulla seconda scheda "accedi" - scegli la prima linea "l'account di sistema locale".

0

questo ha funzionato per me: run

sudo lsof -i :<port_number>

dopo che visualizzerà il PID, che è attualmente collegato al processo.

Dopo quella corsa sudo kill -9 <PID>

se questo non funziona, provare la soluzione offerta da user8376606 sarebbe sicuramente lavorare!

0

Se si desidera riavviare Postgresql su Linux, è necessario utilizzare il seguente comando.

/etc/init.d/postgresql restart

7

Molto probabilmente è perché il vostro arresto del sistema in modo imprevisto

Prova

postgres -D /usr/local/var/postgres 

Si potrebbe vedere

FATAL: lock file "postmaster.pid" already exists 
HINT: Is another postmaster (PID 449) running in data directory "/usr/local/var/postgres"? 

Quindi provare

kill -9 PID 

esempio

kill -9 419 

E dovrebbe iniziare Postgres normalmente

+1

Ciao Nishant, la tua risposta non porta qualcosa di nuovo in quanto ci sono già una risposta accettata e una votata alta che ha già coperto ciò che stai cercando di dire .. –

+0

Stavo cercando di scrivere una risposta da user8376606, in un formato corretto . @masoud richiesto per questo – Nishant

+0

Questo ha risolto il mio problema! Grazie! – Designer