it-swarm.com.de

Es kann keine Verbindung zur Remote-Postgresql-Datenbank hergestellt werden

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 folgende Fehlermeldung angezeigt:

[email protected]:~$ 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 Abhöradresse in 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 festgelegt. Ich bin mir nicht sicher, was ich sonst noch überprüfen soll.

Vielen Dank

17
dot

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 Ihrem iptables eine Regel hinzu:

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 es in eine bestimmte IP-Adresse oder einen bestimmten IP-Adressbereich ändern.

23
Danish Khakwani

Ich bin nicht einverstanden zu verwenden

Host all all 0.0.0.0/0 md5

wenn Ihre Datenbank dem Internet ausgesetzt ist. In meinem Projekt befindet sich postrgres in der Cloud und wird vom Backend aus verwendet. Ich muss mich nur zur Wartung direkt mit der Datenbank verbinden. Ich verbinde mich von einer öffentlichen IP mit der Datenbank, z. B. 1.2.3.4. In diesem Fall lautet der korrekte Eintrag:

Host mybackend myuser 1.2.3.4/0 md5

Bitte beachten Sie das "/ 0" nach der IP-Adresse. Ohne "/ 0" erhalten Sie den Fehler "Verbindung abgelehnt".

Es ist immer besser, den Zugriff auf die Datenbank unter Angabe des Datenbanknamens, des Datenbankbenutzers und der IP-Adressen in der weißen Liste einzuschränken. Verwenden Sie niemals "ALL", es sei denn, Sie befinden sich in einer Entwicklungsumgebung.

Tschüss!

0