„Uwierzytelnianie równorzędne” oznacza, że używa gniazda unixowego i oczekuje, że łączący się użytkownik unixa będzie miał taką samą nazwę użytkownika unix jak nazwa użytkownika postgresql.
Ponieważ twoja lokalna uniksowa nazwa użytkownika jest funkdified
i próbujesz połączyć się jako użytkownik goodsounds
przez gniazdo domeny unixowej (local
) połączenie, w którym twój pg_hba.conf
określa peer
uwierzytelnianie, Pg poprawnie odrzuca twoją próbę połączenia.
Jest to domyślne zachowanie dla wielu instalacji podczas korzystania z gniazd uniksowych.
Możesz:
- Połącz się przez TCP/IP, określając nazwę hosta w ustawieniach połączenia z bazą danych;
- edytuj
pg_hba.conf
używaćmd5
uwierzytelnianie hasłem zamiastpeer
uwierzytelnianie dla gniazd unixowych (local
typ połączenia), aby Pg akceptował uwierzytelnianie hasłem; lub - Połącz się z nazwą użytkownika PostgreSQL taką samą jak nazwa użytkownika unix i utwórz użytkownika w PostgreSQL, jeśli jeszcze nie istnieje.
Zobacz dokumentację dla pg_hba.conf
i resztę rozdziału dokumentacji dotyczącego uwierzytelniania klienta.
Zauważ, że zmiany w pg_hba.conf
nie działają natychmiast, musisz ponownie uruchomić lub przynajmniej ponownie załadować PostgreSQL, aby ponownie odczytać pg_hba.conf
.
Och, także, jeśli masz zainstalowanych wiele wersji PostgreSQL, możesz mieć libpq z jednej wersji i serwer z innej. W takim przypadku upewnij się, że lokalizacja gniazda unixowego, z którym libpq łączy się domyślnie, jest taka sama jak unix_socket_directories
serwera lub zastąp go (np.) host=/tmp
w ciągu połączenia.