2015-06-27 32 views
5

Próbuję połączyć się z moim klientem (Macbook Pro) do bazy danych Postgres znajdującej się na innym komputerze w tej samej sieci (Ubuntu) Widzę bazę danych z hosta za pomocą pgAdmin, łącząc się z localhostem , ale nie widzę od klienta.Serwer Postgres nie nasłuchujący

Mam dozwolone wszystkie połączenia w pg_hba.conf i postgresql.conf

Próbuję połączyć się z klientem poprzez pgAdmin IP do serwera, gdzie są przechowywane w bazie danych (192.168.1.34) i port 5432

enter image description here I pojawia się ten błąd enter image description here Co robię źle?

Am I czegoś brakuje

po przeczytaniu sugestii, mogę powiedzieć: na maszynie ubuntu (Home Server Test) nie mam firewall. Postgres jest uruchomiony.

Próbowałem z konsoli ubuntu, aby uzyskać dostęp do bazy danych: psql -h 127.0.0.1 mydatabase postgres i może łączyć (co oznacza, że ​​serwer jest uruchomiony, a nazwa jest ok) Ale gdy próbuję uzyskać dostęp do tej samej bazy danych, z tego samego maszyna, zmieniając localhost z IP, nie mogę się połączyć. Nie powinienem być psql -h 127.0.0.1 mydatabase postgres taki sam jak psql -h 192.168.1.34 mydatabase postgres po połączeniu się z serwerem?

Być może jest w pętli, jak sugerował Alain?

+0

Czy jesteś absolutnie pewien swojej nazwy użytkownika i hasła? – SteveFerg

Odpowiedz

9

To nie jest połączenie, więc prawdopodobnie nie będzie nasłuchiwało na prawym interfejsie lub jest blokowane przez zaporę.

Czy działa postgres?

sudo service postgresql status 

Czy postgres nasłuchuje na tcp/5432 na twoim LAN IP lub 0.0.0.0 (wszystkie interfejsy)?

netstat -anpt | grep LISTEN 

To może być słuchanie na 127.0.0.1 (sprzężenia zwrotnego) tylko co oznacza, że ​​nie można osiągnąć z Mac.

Jeśli nie słucha albo jest na postgresql.conf wyboru pętli zwrotnej dla listen_addresses:

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

Czy istnieje zapora działa na Ubuntu?

Upewnij się, że zezwalasz na połączenia przychodzące do tcp/5432 z adresu MAC komputera Mac.

GUFW ułatwia konfigurację, ale można to zrobić również za pomocą iptables.

Dalsze odniesienia dla instalacji Ubuntu:

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

+0

@ppardoz czy to odpowiada na twoje pytanie? Proszę to zaznaczyć, jeśli tak. –

+0

Ciekawa edycja. Postgres zdecydowanie działa i pozwala na połączenia TCP na localhost. Wygląda na to, że jest w pętli sprzężenia zwrotnego lub pg_hba.conf nie pozwala serwerowi pocztowemu na logowanie się ze zdalnych hostów. –

5

Prawdopodobnie skonfigurowane następujące dwa pliki
pg_hba.conf
zapamiętać wszystkie wszystkie 0.0.0.0/0 md5
postgresql.conf
listen_addresses = '*'

Trzeba sprawdzić, czy port 5432 jest otwarty: http://www.yougetsignal.com/tools/open-ports/

Jeśli nie jest następnie dodać regułę do iptables: iptables
-A WEJŚCIE -s 0/0 -p tcp --dport 5432 -j AKCEPTUJ

0/0: Jeśli chcesz, aby ktoś miał do niego dostęp.
Można go zmienić na określony adres IP lub zakres adresów IP.

0

w Ubuntu 17.04 domyślnym portem jest 5433 plik check postgresql.conf w ścieżce /etc/postgresql/9.6/main