Testa först och främst om du kan ansluta till databasen via psql :
psql -h ip_address -d name_of_the_database -U username
Om du får ett felmeddelande om att anslutningen nekades var du tvungen att ställa in något fel och kontrollera Vad ska jag kontrollera om fjärranslutningen till PostgreSQL inte fungerar?
psql: could not connect to server: Connection refused Is the server running on host ip_address
Vad ska jag kontrollera om fjärranslutningen till PostgreSQL inte fungerar?
-
Kontrollera autentiseringskonfigurationen i
pg_hba.conf
Finns vanligtvis på linux -
/etc/postgresql/version/main/pg_hba.conf
.Du bör tillåta autentisering för klient för specifik IP allt från alla IP-adresser:# 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
Mer information om hur du ställer in
pg_hba.conf
du kan hitta i dokumentationen . -
Då bör du ställa in lyssning på en viss port.
Du måste hitta
postgresql.conf
. Vanligtvis finns/etc/postgresql/9.1/main/postgresql.conf
) fil och ändra raden med listen_address från:#listen_address = ''
till (glöm inte bort # som betyder kommentar):
listen_address = '*'
-
Efter varje steg bör du starta om Postgresql-tjänsten:
sudo service postgresql restart
-
Efter steg 2 bör du se port 5432 (eller 5433) i lyssningsadressen efter netstat-kommandot:
netstat -ntlp
-
Efter det måste du öppna porten för PostgreSQL i brandväggen:
sudo ufw allow 5432
Du kan kontrollera brandväggsinställningarna med (du bör se 5432 i listan):
sudo ufw status
-
Om något av de föregående stegen inte fungerar bör du kontrollera om PostgreSQL inte körs på en annan port (vanligtvis 5433) och upprepa de föregående stegen.
Detta händer väldigt ofta när du har fler versioner av PostgreSQL eller om du uppgraderar databasen och glömde att stoppa den tidigare versionen av PostgreSQL.
Om du har problem med att hitta konfigurationsfiler kan du kolla den här tråden Var är mina postgres *.conf-filer? .