Първо тествайте дали можете да се свържете с базата данни чрез psql :
psql -h ip_address -d name_of_the_database -U username
Ако получите грешка за отказана връзка, трябва да настроите нещо нередно и да проверите Какво трябва да проверя, ако дистанционното свързване към PostgreSQL не работи?
psql: could not connect to server: Connection refused Is the server running on host ip_address
Какво трябва да проверя, ако дистанционното свързване към PostgreSQL не работи?
-
Проверете конфигурацията за удостоверяване в
pg_hba.conf
Обикновено се намира в linux -
/etc/postgresql/version/main/pg_hba.conf
.Трябва да разрешите удостоверяване за клиента за конкретен IP от всички 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
Повече информация как да настроите
pg_hba.conf
можете да намерите в документация . -
След това трябва да настроите слушане на конкретен порт.
Трябва да намерите
postgresql.conf
. Обикновено се намира/etc/postgresql/9.1/main/postgresql.conf
) файл и променете реда с listen_address от:#listen_address = ''
до (не забравяйте да премахнете #, което означава коментар):
listen_address = '*'
-
След всяка стъпка трябва да рестартирате услугата Postgresql:
sudo service postgresql restart
-
След стъпка 2 трябва да видите порт 5432 (или 5433) в адреса за слушане след командата netstat:
netstat -ntlp
-
След това трябва да отворите порт за PostgreSQL в защитната стена:
sudo ufw allow 5432
Можете да проверите настройките на защитната стена с (трябва да видите 5432 в списъка):
sudo ufw status
-
Ако някоя от предишните стъпки не работи, трябва да проверите дали PostgreSQL не работи на различен порт (обикновено 5433) и да повторите предишните стъпки.
Това се случва много често, когато имате повече работещи версии на PostgreSQL или надстроите база данни и сте забравили да спрете предишната версия на PostgreSQL.
Ако имате проблеми с намирането на конфигурационни файлове, можете да проверите тази тема Къде са моите postgres *.conf файлове? .