PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Errore di connessione durante la connessione a PostgreSQL come utente postgres?

Stai tentando di connetterti a PostgreSQL su localhost utilizzando uno script in esecuzione sul tuo computer, ma non c'è alcun server PostgreSQL in esecuzione lì.

Affinché funzioni, dovresti eseguire ssh sul server remoto, quindi eseguire il tuo script Python lì, dove il server PostgreSQL è "locale" rispetto allo script Python.

(Ecco perché eseguendo psql funziona - perché lo stai eseguendo sul server remoto , dove PostgreSQL è "locale" rispetto a psql ).

In alternativa, potresti:

  • Usa un tunnel SSH per inoltrare la porta PostgreSQL dal computer locale a quello remoto; o

  • Connettiti direttamente tramite TCP/IP al server PostgreSQL remoto utilizzando il suo nome host o indirizzo IP, dopo aver abilitato le connessioni remote sul server.

Nota che basta inserire l'indirizzo IP o il nome host del server nella stringa di connessione invece di localhost non funzionerà a meno che tu non configuri anche il server per accettare connessioni remote . Devi impostare listen_addresses per ascoltare le connessioni non locali, aggiungi le regole firewall richieste, imposta pg_hba.conf per consentire connessioni da macchine remote e, preferibilmente, impostare SSL. Tutto questo è trattato nel capitolo Autenticazione client del manuale utente di PostgreSQL.

Probabilmente troverai un tunnel SSH più semplice e facile da capire.