Test eerst of je verbinding kunt maken met de database via psql :
psql -h ip_address -d name_of_the_database -U username
Als u een foutmelding krijgt dat de verbinding is geweigerd, moet u iets verkeerd instellen en de Wat moet ik controleren als externe verbinding met PostgreSQL niet werkt? aanvinken.
psql: could not connect to server: Connection refused Is the server running on host ip_address
Wat moet ik controleren als externe verbinding met PostgreSQL niet werkt?
-
Controleer de authenticatieconfiguratie in
pg_hba.conf
Meestal te vinden op linux -
/etc/postgresql/version/main/pg_hba.conf
.U moet authenticatie voor client voor specifieke IP toestaan, allemaal vanaf alle IP-adressen:# 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
Meer informatie over het instellen van
pg_hba.conf
u kunt vinden in documentatie . -
Vervolgens moet je luisteren op een specifieke poort instellen.
Je moet de
postgresql.conf
. vinden . Meestal te vinden op/etc/postgresql/9.1/main/postgresql.conf
) bestand en verander de regel met listen_address van:#listen_address = ''
naar (vergeet niet # te verwijderen wat commentaar betekent):
listen_address = '*'
-
Na elke stap moet u de Postgresql-service opnieuw starten:
sudo service postgresql restart
-
Na stap 2 zou je poort 5432 (of 5433) moeten zien in het luisteradres na het netstat-commando:
netstat -ntlp
-
Daarna moet je de poort voor PostgreSQL in de firewall openen:
sudo ufw allow 5432
U kunt de firewall-instellingen controleren met (u zou 5432 in de lijst moeten zien):
sudo ufw status
-
Als een van de vorige stappen niet werkt, moet u controleren of PostgreSQL niet op een andere poort draait (meestal 5433) en de vorige stappen herhalen.
Dit gebeurt heel vaak als je meer actieve versies van PostgreSQL hebt of als je een upgrade van de database uitvoert en vergeten bent de vorige versie van PostgreSQL te stoppen.
Als je problemen hebt om configuratiebestanden te vinden, kun je deze thread bekijken Waar zijn mijn postgres *.conf-bestanden? .