it-swarm.com.de

Es kann keine Verbindung zu Postgresql an Port 5432 hergestellt werden

Ich habe PostgreSQL 9.3 auf einem Server mit Ubuntu Server 14.04 installiert.

Wenn ich ssh in den Server über das Terminal einbinde, kann ich mich mit psql verbinden. Wenn ich jedoch versuche, pgAdmin III für die Remote-Verbindung zu konfigurieren, erhalte ich Folgendes:

Server hört nicht zu Der Server akzeptiert keine Verbindungen: die Verbindungsbibliotheksberichte konnten keine Verbindung zum Server herstellen: Verbindung abgelehnt Läuft der Server auf dem Host "172.24.3.147" und akzeptiert TCP/IP-Verbindungen an Port 5432?

Wenn ich auf dem Server service postgresql status laufe, bekomme ich:

9.3/main (port 5432): online

Also fehlt mir hier etwas Wichtiges.

BEARBEITEN

Wenn ich netstat -na auf dem Server betreibe, bekomme ich (relevanten Teil, denke ich):

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN     
tcp        0      0 172.24.3.147:22         172.24.3.240:61950      ESTABLISHED
tcp        0      0 172.24.3.147:22         172.24.3.240:60214      ESTABLISHED
17
Rodrigo

Sie müssen die Datei postgresql.conf bearbeiten und die Zeile mit 'listen_addresses' ändern.

Diese Datei finden Sie im Verzeichnis /etc/postgresql/9.3/main.

Die Ubuntu-Standardkonfiguration hat nur die Schnittstelle localhost (oder 127.0.0.1) zugelassen. Dies ist ausreichend, wenn alle PostgreSQL-Clients auf demselben Computer als PostgreSQL-Server arbeiten. Wenn Sie den PostgreSQL-Server von anderen Computern aus verbinden möchten, müssen Sie diese Konfigurationszeile folgendermaßen ändern:

listen_addresses = '*'

Dann haben Sie auch die Datei pg_hba.conf . In dieser Datei haben Sie festgelegt, von welchen Computern Sie eine Verbindung zu diesem Server herstellen können und welche Authentifizierungsmethode Sie verwenden können. Normalerweise benötigen Sie eine ähnliche Zeile:

Host    all         all         192.168.1.0/24        md5

Bitte lesen Sie die Kommentare in dieser Datei ...

BEARBEITEN:

Nach der Bearbeitung von postgresql.conf und pg_hba.conf müssen Sie den postgresql-Server neu starten.

EDIT2: Highlited Konfigurationsdateien.

27
Jan Marek

Ich hatte das gleiche Problem nach einem MacOS-System-Upgrade. Gelöst durch Aufrüsten des Postgres mit Gebräu. Details: Offenbar hat das System versucht, mit älteren Postgres 10-Einstellungen auf Postgres 11 zuzugreifen. Ich bin sicher, dass es irgendwo in der Vergangenheit mein Fehler war, aber zum Glück wurde alles mit dem Upgrade oben geklärt.

1
Adrian Stanica

Hatte dasselbe Problem mit psql über die Befehlszeilenverbindung und pgAdmin, das keine Verbindung zu RDS mit AWS herstellt. Ich habe mein RDS auf "Öffentlich zugänglich" gesetzt. Ich stellte sicher, dass meine ACL- und Sicherheitsgruppen weit offen standen und immer noch ein Problem darstellten. Daher tat ich Folgendes: __.Sudo find . -name *.conf Dann Sudo nano ./data/pg_hba.conf Dann oben in Anweisungen in der Datei pg_hba.conf Host all all 0.0.0.0/0 md5.__ automatisch angemeldet 

Dies funktionierte auch in der Datei pg_hba.conf Host all all md5 ohne IP-Adresse und auch mit meiner IP-Adresse Host all all <myip>/32 md5.

Als Nebenbemerkung befand sich mein RDS in meiner Standard-VPC. Ich hatte eine identische RDS-Instanz in meiner nicht standardmäßigen VPC mit identischen Sicherheitsgruppen-, ACL- und Sicherheitsgruppeneinstellungen zu meiner Standard-VPC, und ich konnte es nicht zum Laufen bringen. Nicht sicher warum, aber für einen anderen Tag. 

0
max56

Denken Sie auch daran, die Firewall-Einstellungen zu überprüfen. Nachdem ich meine pg_hba.conf- und postgres.conf-Dateien überprüft und überprüft hatte, fand ich schließlich heraus, dass meine Firewall alles überschrieb und somit Verbindungen blockierte

0
Alex

Das hat mich ein zweites Mal gebissen und ich dachte, es wäre erwähnenswert. Die Zeile listen_addresses = '*' in der postgresql.conf ist standardmäßig kommentiert. Entfernen Sie nach dem Aktualisieren unbedingt das Kommentarzeichen (# am Anfang), da andernfalls die Remoteverbindungen weiterhin blockiert werden.

0

Sie müssen wahrscheinlich entweder den Port öffnen, um auf ihn in Ihrem LAN (oder außerhalb) zuzugreifen, oder die Netzwerkadresse an den Port binden.

0
Daniel Kravetz