2013-11-25 16 views
12

Sto installando tramite brew.PostgreSQL non è stato in grado di creare alcun socket TCP/IP 'Mavericks

Il messaggio di errore (s):

Quando chiamo

postgres 

ricevo l'errore

LOG: could not bind IPv6 socket: Address already in use 
HINT: Is another postmaster already running on port 5432? If not, wait a few seconds and retry. 
LOG: could not bind IPv4 socket: Address already in use 
HINT: Is another postmaster already running on port 5432? If not, wait a few seconds and retry. 
LOG: could not bind IPv6 socket: Address already in use 
HINT: Is another postmaster already running on port 5432? If not, wait a few seconds and retry. 
WARNING: could not create listen socket for "localhost" 
FATAL: could not create any TCP/IP sockets 

Esecuzione

postgres -D /usr/local/var/postgres 

Crea lo stesso errore

createdb 

Mi chiede la password due volte, poi dice,

createdb: could not connect to database template1: FATAL: password authentication failed for user "thomasmurphy" 

quello che ho provato * disinstallare e reinstallare la gemma pg, disinstallare e reinstallare postgres * Aggiornamento strumenti da riga di comando * satisying tutte le esigenze birra del medico * modifica i permessi di pg_hba.conf * modificando .bash_profile per essere sicuri che comprende le directory di cui sopra

Ho Postgres perfettamente funzionante sul mio computer di lavoro, anche su Mavericks, quindi questo mi sembra un caso marginale. Quali altri vettori posso colpire per cercare di risolvere questo?

+0

'Un altro postmaster è già in esecuzione sulla porta 5432?' - beh, vero? –

+0

@RichardHuxton Domanda giusta. Ma no, nessuna connessione è in esecuzione su 5432. –

+0

come hai controllato? –

risposta

4

Gli errori che si ottengono sono perché PostgreSQL è in esecuzione. Come lo so? Perché sta rifiutando la tua password. Questo è abbastanza chiaro.

Ora il tuo vero problema è probabilmente che è necessario riavviare PostgreSQL dopo aver modificato il file pg_hba.conf per fornire l'accesso sicuro. Quindi è possibile:

ALTER USER foo WITH PASSWORD 'bar'; 

In termini di avvio e riavvio PostgreSQL, vedere questa domanda: How to start PostgreSQL server on Mac OS X?

+0

Non riesco più a riprodurre questo problema, dal momento che pulisco PostgreSQL installato su questa macchina. Questa risposta sembra allineare con il problema che stavo avendo, quindi accetterò. –

7

L'errore che si ottiene è beacause i padroni di casa è broken.check il file /etc/hosts.

Inserire 127.0.0.1 localhost nella prima riga di host.

+0

Ha funzionato nel mio caso, ma non so spiegare perché? Puoi anche dire cosa c'è di sbagliato nel non avere quella voce nel file hosts. –

+0

L'host locale non è lo stesso di 127.0.0.1. In alcune applicazioni, il localhost non ha bisogno di essere tradotto in indirizzo IP. Tuttavia, è – gpxlcj

+0

Tuttavia deve essere tradotto qui. Sia il PostgreSQL che gli host configure non impostano un'associazione tra localhost e IP. – gpxlcj

2

Linux: assicurarsi che l'interfaccia di loopback sia attiva eseguendo ifconfig nella riga di comando. Se non è attivo, puoi utilizzare /sbin/ifconfig lo 127.0.0.1 per richiamarlo.

+0

Ha funzionato come un fascino. Grazie! – Sathish

0

Potrebbe non essere che il tuo /etc/hosts è rotto. Potrebbe essere qualcos'altro che interrompe la ricerca DNS di localhost, anche se la riga corretta è in /etc/hosts.

Controllare nslookup localhost e vedere se si ottiene 127.0.0.1 di conseguenza. Controlla anche con getent hosts localhost. Controlla anche questi mentre l'utente Postgres viene eseguito come.