Prima di tutto verifica se riesci a connetterti al database tramite psql :
psql -h ip_address -d name_of_the_database -U username
Se ricevi un errore di connessione rifiutata, dovevi impostare qualcosa di sbagliato e controllare Cosa devo controllare se la connessione remota a PostgreSQL non funziona?
psql: could not connect to server: Connection refused Is the server running on host ip_address
Cosa devo controllare se la connessione remota a PostgreSQL non funziona?
-
Controlla la configurazione dell'autenticazione in
pg_hba.conf
Di solito si trova su Linux -
/etc/postgresql/version/main/pg_hba.conf
.Dovresti consentire l'autenticazione per il client per IP specifico da tutti gli indirizzi IP:# Database administrative login by Unix domain socket local all postgres peer # TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all peer # IPv4 local connections: host all all 0.0.0.0/0 md5 # IPv6 local connections: host all all ::0/0 md5 #all ips host all all all md5
Ulteriori informazioni su come impostare
pg_hba.conf
puoi trovare nella documentazione . -
Quindi dovresti impostare l'ascolto su una porta specifica.
Devi trovare il
postgresql.conf
. Di solito si trova/etc/postgresql/9.1/main/postgresql.conf
) e cambia la riga con listen_address da:#listen_address = ''
a (non dimenticare rimuovere # che significa commento):
listen_address = '*'
-
Dopo ogni passaggio dovresti riavviare il servizio Postgresql:
sudo service postgresql restart
-
Dopo il passaggio 2 dovresti vedere la porta 5432 (o 5433) nell'indirizzo di ascolto dopo il comando netstat:
netstat -ntlp
-
Dopo di che devi aprire la porta per PostgreSQL nel firewall:
sudo ufw allow 5432
Puoi controllare le impostazioni del firewall con (dovresti vedere 5432 nell'elenco):
sudo ufw status
-
Se uno qualsiasi dei passaggi precedenti non funziona, dovresti controllare se PostgreSQL non è in esecuzione su una porta diversa (di solito 5433) e ripetere i passaggi precedenti.
Questo accade molto spesso quando hai più versioni in esecuzione di PostgreSQL o aggiorni il database e ti sei dimenticato di interrompere la versione precedente di PostgreSQL.
Se hai problemi a trovare i file di configurazione puoi controllare questo thread Dove sono i miei file *.conf postgres? .