Powiedz, że widzisz tę wiadomość:
FATAL: Ident authentication failed for user "..."
Jakie są przyczyny tego komunikatu o błędzie?
Powiedz, że widzisz tę wiadomość:
FATAL: Ident authentication failed for user "..."
Jakie są przyczyny tego komunikatu o błędzie?
Odpowiedzi:
Oznacza to, że Postgres próbuje uwierzytelnić użytkownika przy użyciu protokołu Ident i nie może. Identyfikator działa w następujący sposób:
pg_hba.conf
plik ( /etc/postgres-something/main
wewnątrz) definiuje „Ident” jako protokół połączenia z bazą danych db
dla użytkowników łączących się z określonych hostówMożliwe przyczyny i rozwiązania:
sudo apt-get install oidentd
.).CREATE ROLE foo
. Alternatywnie dodaj wpis do /etc/postgresql/.../main/pg_ident.conf
.Może faktycznie chcesz połączyć się hasłem , a nie Ident. Dokonaj pg_hba.conf
odpowiedniej edycji pliku. Na przykład zmień:
host all all 127.0.0.1/32 ident
do
host all all 127.0.0.1/32 md5
Nie jestem pewien co do przyczyn, ale to mnie naprawiło:
w pg_hba.conf
zmień na to:
hostuj wszystkie wszystkie 127.0.0.1/32 md5
Dokładny błąd: Caused by: org.postgresql.util.PSQLException: FATAL: Ident authentication failed for user "postgres"
W CentOS dodaj następujący wiersz do /var/lib/pgsql/9.3/data/pg_hba.conf
:
host all all 127.0.0.1/32 trust
I skomentuj pozostałe wpisy.
Oczywiście to ustawienie nie jest bezpieczne, ale jeśli po prostu zadzierasz na programistycznej maszynie wirtualnej, takiej jak ja, prawdopodobnie jest w porządku ...
Jeśli jeszcze tego nie próbowałeś, przejrzyj plik pg_hba.conf. Będzie się nazywać tak jak /var/lib/pgsql/9.3/data/pg_hba.conf (Fedora 20); być może będziesz musiał użyć „find / -name pg_hba.conf”, aby go zlokalizować.
Na dole pliku zmień wartości „METODA” na „zaufanie” w testach lokalnych (pełne informacje znajdziesz w dokumentacji Postgres). Uruchom ponownie maszynę, aby upewnić się, że wszystko zostało uruchomione w czystości, a nowe parametry zostały odczytane.
Mam nadzieję, że to wyleczy twoje nieszczęścia. Rozwiązało to moje problemy na Fedorze 20 z PostgreSQL 9.3.
pg_ctl reload
z konsoli lub SELECT pg_reload_conf();
podczas wykonywania SQL jako użytkownik uprzywilejowany.
/var/lib/psql/data