U probeert verbinding te maken met PostgreSQL op localhost
met behulp van een script dat op uw computer wordt uitgevoerd, maar daar draait geen PostgreSQL-server.
Om dit te laten werken, moet je ssh naar de externe server en vervolgens je Python-script daar uitvoeren, waar de PostgreSQL-server "lokaal" is ten opzichte van het Python-script.
(Daarom draait u psql
werkt - omdat u het op de externe server uitvoert , waarbij PostgreSQL "lokaal" is ten opzichte van psql
).
Als alternatief kunt u:
-
Gebruik een SSH-tunnel om de PostgreSQL-poort door te sturen van de lokale computer naar de externe; of
-
Maak rechtstreeks via TCP/IP verbinding met de externe PostgreSQL-server met behulp van de hostnaam of het IP-adres, nadat u externe verbindingen op de server hebt ingeschakeld.
Houd er rekening mee dat u alleen het IP-adres of de hostnaam van de server in de verbindingsreeks plaatst in plaats van localhost
werkt niet tenzij u de server ook configureert om externe verbindingen te accepteren . Je moet listen_addresses
set instellen om te luisteren naar niet-lokale verbindingen, voeg eventueel vereiste firewallregels toe, stel pg_hba.conf
in om verbindingen vanaf externe machines toe te staan en bij voorkeur SSL in te stellen. Dit alles wordt behandeld in het hoofdstuk Clientverificatie van de gebruikershandleiding van PostgreSQL.
U zult waarschijnlijk een SSH-tunnel eenvoudiger en gemakkelijker te begrijpen vinden.