Está intentando conectarse a PostgreSQL en localhost
utilizando un script que se ejecuta en su computadora, pero no hay un servidor PostgreSQL ejecutándose allí.
Para que esto funcione, tendrías que conectarte al servidor remoto, luego ejecutar tu secuencia de comandos de Python allí, donde el servidor PostgreSQL es "local" en relación con la secuencia de comandos de Python.
(Es por eso que ejecutar psql
funciona, porque lo está ejecutando en el servidor remoto , donde PostgreSQL es "local" relativo a psql
).
Alternativamente, podrías:
-
Use un túnel SSH para reenviar el puerto de PostgreSQL del ordenador local al remoto; o
-
Conéctese directamente a través de TCP/IP al servidor PostgreSQL remoto utilizando su nombre de host o dirección IP, después de habilitar las conexiones remotas en el servidor.
Tenga en cuenta que simplemente coloque la dirección IP del servidor o el nombre de host en la cadena de conexión en lugar de localhost
no funcionará a menos que también configure el servidor para aceptar conexiones remotas . Debe configurar listen_addresses
para escuchar conexiones no locales, agregue las reglas de firewall requeridas, establezca pg_hba.conf
para permitir conexiones desde máquinas remotas, y preferiblemente configurar SSL. Todo esto está cubierto en el capítulo Autenticación de clientes del manual de usuario de PostgreSQL.
Probablemente encontrará un túnel SSH más simple y más fácil de entender.