Przede wszystkim sprawdź, czy możesz połączyć się z bazą danych przez psql :
psql -h ip_address -d name_of_the_database -U username
Jeśli pojawi się błąd odmowy połączenia, musiałeś coś źle skonfigurować i sprawdź Co powinienem sprawdzić, jeśli zdalne połączenie z PostgreSQL nie działa?
psql: could not connect to server: Connection refused Is the server running on host ip_address
Co powinienem sprawdzić, jeśli zdalne połączenie z PostgreSQL nie działa?
-
Sprawdź konfigurację uwierzytelniania w
pg_hba.conf
Zwykle znajduje się na linuksie -
/etc/postgresql/version/main/pg_hba.conf
.Powinieneś zezwolić na uwierzytelnianie klienta dla określonego adresu IP ze wszystkich adresów 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
Więcej informacji jak skonfigurować
pg_hba.conf
można znaleźć w dokumentacji . -
Następnie skonfiguruj nasłuchiwanie na określonym porcie.
Musisz znaleźć
postgresql.conf
. Zwykle znajduje się/etc/postgresql/9.1/main/postgresql.conf
) i zmień linię na listen_address z:#listen_address = ''
do (nie zapomnij usunąć #, co oznacza komentarz):
listen_address = '*'
-
Po każdym kroku należy ponownie uruchomić usługę Postgresql:
sudo service postgresql restart
-
Po kroku 2 powinieneś zobaczyć port 5432 (lub 5433) w adresie nasłuchiwania po poleceniu netstat:
netstat -ntlp
-
Potem musisz otworzyć port dla PostgreSQL w zaporze:
sudo ufw allow 5432
Możesz sprawdzić ustawienia zapory za pomocą (powinieneś zobaczyć 5432 na liście):
sudo ufw status
-
Jeśli którykolwiek z poprzednich kroków nie działa, sprawdź, czy PostgreSQL nie działa na innym porcie (zwykle 5433) i powtórz poprzednie kroki.
Zdarza się to bardzo często, gdy masz więcej działających wersji PostgreSQL lub aktualizujesz bazę danych i zapomniałeś zatrzymać poprzednią wersję PostgreSQL.
Jeśli masz problemy ze znalezieniem plików konfiguracyjnych, możesz sprawdzić ten wątek Gdzie są moje pliki postgres *.conf? .