it-swarm.com.de

Postgresql: Verbindung abgelehnt. Überprüfen Sie, ob der Hostname und der Port korrekt sind und der Postmaster TCP / IP-Verbindungen akzeptiert

Ich versuche, postgresql zu verbinden, aber ich erhalte diesen Fehler.

org.postgresql.util.PSQLException: Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.

Meine pg_hba.conf-Datei sieht so aus.

 TYPE  DATABASE        USER            CIDR-ADDRESS            METHOD

# IPv4 local connections:
Host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
Host    all             all             ::1/128                 md5

Ich wäre sehr dankbar, wenn jemand so freundlich wäre zu erklären, was hier los ist und wie ich es korrigieren sollte.

49
Rose18

Der von Ihnen angegebene Fehler hat nichts mit pg_hba.conf Zu tun. Es kann keine Verbindung hergestellt werden, und die Verbindung kann nicht autorisiert werden.

Mach was die Fehlermeldung sagt:

Überprüfen Sie, ob der Hostname und der Port korrekt sind und der Postmaster TCP/IP-Verbindungen akzeptiert

Sie haben den Befehl, der den Fehler verursacht, nicht angezeigt. Angenommen, Sie stellen eine Verbindung über den localhost -Port 5432 Her (die Standardeinstellungen für eine Standard-PostgreSQL-Installation), dann geschieht Folgendes:

  • PostgreSQL läuft nicht

  • PostgreSQL wartet nicht auf TCP/IP-Verbindungen (listen_addresses In postgresql.conf)

  • PostgreSQL hört nur IPv4 (0.0.0.0 Oder 127.0.0.1) Und Sie verbinden sich über IPv6 (::1) Oder umgekehrt. Dies scheint ein Problem bei einigen älteren Mac OS X-Versionen zu sein, die ein seltsames IPv6-Socket-Verhalten aufweisen, und bei einigen älteren Windows-Versionen.

  • PostgreSQL überwacht einen anderen Port als den, über den Sie eine Verbindung herstellen

  • (unwahrscheinlich) Es gibt eine iptables Regel, die Loopback-Verbindungen blockiert

(Wenn Sie nicht eine Verbindung zu localhost herstellen, kann es sich auch um eine Netzwerk-Firewall handeln, die TCP/IP-Verbindungen blockiert. Ich vermute jedoch, dass Sie die Standardeinstellungen verwenden, da Sie dies nicht getan haben. ' nicht sagen).

Also ... prüfe diese:

  • ps -f -u postgres Sollte postgres Prozesse auflisten

  • Sudo lsof -n -u postgres |grep LISTEN Oder Sudo netstat -ltnp | grep postgres Sollten die TCP/IP-Adressen und -Ports anzeigen, die PostgreSQL überwacht

BTW, ich denke, Sie müssen auf einer alten Version sein. Bei meiner 9.3-Installation ist der Fehler etwas ausführlicher:

$ psql -h localhost -p 12345
psql: could not connect to server: Connection refused
        Is the server running on Host "localhost" (::1) and accepting
        TCP/IP connections on port 12345?
102
Craig Ringer