Es kann keine Verbindung zur entfernten postgresql-Datenbank hergestellt werden


16

Ich versuche, eine Verbindung zu einer entfernten psql-Datenbank herzustellen. Bevor ich den Eintrag pg_hba.conf mit der IP-Adresse des Clients hinzufügte, wurde eine Fehlermeldung angezeigt:

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

Ich habe die IP des Clients mit Vertrauenseinstellungen hinzugefügt. Ich habe auch die Listen-Adresse in der postgres.conf auf dem Server geändert, um "*" anzuhören. Dann habe ich den Datenbankserver mit dem Befehl /etc/init.d/postgresql restart neu gestartet.

Wenn ich jetzt versuche, eine Verbindung herzustellen, wird folgende Fehlermeldung angezeigt:

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?

In postgresql.conf ist der Port auf 5432 gesetzt. Ich bin nicht sicher, was ich sonst überprüfen soll.

Vielen Dank


Können Sie diese Adresse anpingen?
Dezso

1
Ich würde sagen, die Datenbank wurde beim Neustart nicht korrekt neu gestartet. Überprüfen Sie die PostgreSQL-Protokolldateien auf den Grund - wahrscheinlich ein Tippfehler pg_hba.conf.
Craig Ringer

Ich musste die Listen-Adresse von * auf die spezifische IP-Adresse ändern.
Punkt

Antworten:


22

Sie müssen die folgenden zwei Dateien konfigurieren

pg_hba.conf

host all all 0.0.0.0/0 md5

postgresql.conf

listen_addresses='*'

Sie müssen überprüfen, ob der Port 5432 geöffnet ist: http://www.yougetsignal.com/tools/open-ports/

Wenn dies nicht der Fall ist, fügen Sie eine Regel hinzu iptables:

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

0/0: Wenn Sie möchten, dass jemand darauf zugreift. Sie können eine bestimmte IP-Adresse oder einen bestimmten IP-Adressbereich festlegen.


1
Nur eine Ergänzung. Sie müssen kein externes Tool verwenden. Verwenden telnet [yourServerIp] 5432Sie nur, wenn Sie kein Telnet installiert haben, das Sie PowerShellbeispielsweise unter Windows verwenden können.
Ionische

@Ionic das stimmt
Danish Khakwani

2
Naja, nenn mich paranoid, aber ich vertraue nicht zu vielen Diensten im Netz. ;-) Nur um sich dessen bewusst zu sein. :-)
Ionic

Port-Checking-Tool hat mir hier geholfen
Shobi
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.