2015-06-27 23 views
5

Sto provando a collegarmi con il mio client (Macbook Pro) a un database Postgres situato in un altro PC nella stessa rete (Ubuntu) Posso vedere il database dall'host con pgAdmin, collegandolo a localhost , ma non riesco a vedere dal cliente.Postgres server non in ascolto

ho permesso tutte le connessioni in pg_hba.conf e postgresql.conf

sto cercando di connettersi dal client attraverso pgAdmin al server IP in cui è memorizzato il database (192.168.1.34) e la porta 5432

enter image description here E ottengo questo errore enter image description here Cosa sto facendo male?

mi sto perdendo qualcosa

Dopo i suggerimenti di lettura, posso dire: Sulla macchina Ubuntu (server di test a casa) non ho alcun firewall. Postgres è in esecuzione.

Ho provato dalla console ubuntu per accedere al database: psql -h 127.0.0.1 mydatabase postgres e può collegarsi (il che significa che il server è in esecuzione e username è ok) Ma se provo ad accedere allo stesso database, dalla stessa macchina, cambiando localhost con l'IP, non riesco a connettermi. Non dovrebbe essere psql -h 127.0.0.1 mydatabase postgres uguale a psql -h 192.168.1.34 mydatabase postgres quando mi connetto dal server?

Forse è in loopback, come suggerito Alain?

+0

Sei assolutamente sicuro di username e password? – SteveFerg

risposta

9

Non si sta connettendo, quindi è probabile che non stia ascoltando sull'interfaccia giusta o sia bloccato dal firewall.

Postgres è in esecuzione?

sudo service postgresql status 

È Postgres ascolto su TCP/5432 sul vostro IP LAN o 0.0.0.0 (tutte le interfacce)?

Potrebbe essere in ascolto su 127.0.0.1 (loopback) solo che significa che non può essere raggiunto dal Mac.

Se non è in ascolto o è in loopback controllo postgresql.conf per listen_addresses:

http://www.postgresql.org/docs/9.1/static/runtime-config-connection.html

C'è un firewall in esecuzione sulla scatola di Ubuntu?

Assicurarsi di consentire le connessioni in entrata a TCP/5432 dall'IP del Mac al minimo.

GUFW semplifica la configurazione, ma può essere eseguita anche con iptables.

Ulteriori riferimento per la messa a punto di Ubuntu:

https://help.ubuntu.com/community/PostgreSQL

+0

@ppardoz risponde alla tua domanda? Si prega di segnare correttamente se lo fa. –

+0

Modifica interessante. Postgres è sicuramente in esecuzione e sta permettendo connessioni TCP su localhost. Sembra che sia su loopback o che pg_hba.conf non permetta a postgres di accedere dagli host remoti. –

5

Probabilmente avete configurato seguenti due file
pg_hba.conf
ospite tutti tutti 0.0.0.0/0 md5
postgresql.conf
listen_addresses = '*'

Devi controllare se la porta 5432 è aperta: http://www.yougetsignal.com/tools/open-ports/

Se non è poi aggiungere una regola per i tuoi iptables:
iptables -A INPUT -s 0/0 -p tcp --dport 5432 -j ACCEPT

0/0: Se vuoi che qualcuno acceda.
È possibile cambiarlo in un indirizzo IP specifico o in un intervallo di indirizzi IP.

0

in Ubuntu 17.04 porta di default è 5433 file di controllo postgresql.conf nel percorso /etc/postgresql/9.6/main