nie można połączyć się ze zdalną bazą danych postgresql

16

Próbuję połączyć się ze zdalną bazą danych psql. Zanim dodałem wpis pg_hba.conf z adresem IP klienta, otrzymywałem komunikat o błędzie:

xdev@xdevbox:~$ psql -U postgres testdb -h 10.1.1.47
psql: FATAL:  no pg_hba.conf entry for host "10.201.50.71", user "postgres", database "testdb", SSL off

Dodałem adres IP klienta z ustawieniami zaufania. Zmieniłem także adres nasłuchu w postgres.conf na serwerze, aby słuchać „*”. Następnie zrestartowałem serwer bazy danych za pomocą komendy /etc/init.d/postgresql restart.

Teraz, gdy próbuję się połączyć, pojawia się następujący komunikat o błędzie:

psql: could not connect to server: Connection refused
    Is the server running on host "10.1.1.47" and accepting
    TCP/IP connections on port 5432?

w postgresql.conf port jest ustawiony na 5432. Nie jestem pewien, co jeszcze można sprawdzić.

Dzięki

kropka
źródło
Czy możesz pingować ten adres?
dezso
1
Powiedziałbym, że DB nie uruchomił się ponownie poprawnie po ponownym uruchomieniu. Sprawdź pliki dziennika PostgreSQL, aby dowiedzieć się, dlaczego - prawdopodobnie literówka pg_hba.conf.
Craig Ringer
Musiałem zmienić adres odsłuchu z * na konkretny adres IP.
kropka

Odpowiedzi:

22

Musisz skonfigurować następujące dwa pliki

pg_hba.conf

host all all 0.0.0.0/0 md5

postgresql.conf

listen_addresses='*'

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

Jeśli tak nie jest, dodaj regułę do iptables:

iptables -A INPUT -s 0/0 -p tcp --dport 5432 -j ACCEPT

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

Duński Khakwani
źródło
1
Tylko dodatek. Nie musisz używać zewnętrznego narzędzia. Po prostu użyj, telnet [yourServerIp] 5432jeśli nie masz zainstalowanego programu Telnet, którego możesz PowerShellna przykład używać w systemie Windows.
Ionic
@Ionic to prawda
duński Khakwani
2
Nazwij mnie paranoikiem, ale nie ufam zbyt wielu usługom w sieci. ;-) Należy tylko pamiętać. :-)
Ionic
narzędzie do sprawdzania portów pomogło mi tutaj
Shobi,