PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Verbindungsfehler beim Verbinden mit PostgreSQL als Postgres-Benutzer?

Sie versuchen, eine Verbindung zu PostgreSQL auf localhost herzustellen mit einem Skript, das auf Ihrem Computer läuft, aber dort läuft kein PostgreSQL-Server.

Damit dies funktioniert, müssten Sie per SSH zum Remote-Server gehen und dann Ihr Python-Skript dort ausführen, wo der PostgreSQL-Server relativ zum Python-Skript "lokal" ist.

(Deshalb wird psql ausgeführt funktioniert - weil Sie es auf dem Remote-Server ausführen , wobei PostgreSQL relativ zu psql "lokal" ist ).

Alternativ könnten Sie:

  • Verwenden Sie einen SSH-Tunnel, um den PostgreSQL-Port weiterzuleiten vom lokalen Computer zum entfernten; oder

  • Verbinden Sie sich direkt über TCP/IP mit dem entfernten PostgreSQL-Server unter Verwendung seines Hostnamens oder seiner IP-Adresse, nachdem Sie entfernte Verbindungen auf dem Server aktiviert haben.

Beachten Sie, dass Sie anstelle von localhost einfach die IP-Adresse oder den Hostnamen des Servers in die Verbindungszeichenfolge einfügen funktioniert nicht es sei denn, Sie konfigurieren den Server auch so, dass er Remote-Verbindungen akzeptiert . Sie müssen listen_addresses festlegen Um auf nicht-lokale Verbindungen zu lauschen, fügen Sie alle erforderlichen Firewall-Regeln hinzu und legen Sie pg_hba.conf fest um Verbindungen von entfernten Rechnern zuzulassen, und richten Sie vorzugsweise SSL ein. All dies wird im Kapitel Client-Authentifizierung des PostgreSQL-Benutzerhandbuchs behandelt.

Wahrscheinlich finden Sie einen SSH-Tunnel einfacher und verständlicher.