„Peer удостоверяване“ означава, че използва unix сокет и очаква свързващият се unix потребител да има същото потребителско име на unix като потребителското име на postgresql.
Тъй като вашето локално потребителско име за unix е funkdified
и се опитвате да се свържете като потребител goodsounds
през сокет на unix домейн (local
) връзка, където вашият pg_hba.conf
определя peer
удостоверяване, Pg правилно отхвърля опита ви за свързване.
Това е поведението по подразбиране за много инсталации, когато се използват unix сокети.
Можете да:
- Свържете се чрез TCP/IP, като посочите име на хост в настройките за връзка с базата данни;
- редактирайте
pg_hba.conf
да използватеmd5
удостоверяване с парола вместоpeer
удостоверяване за unix сокети (local
тип връзка), така че Pg приема удостоверяване с парола; или - Свържете се с потребителско име на PostgreSQL, същото като вашето потребителско име за unix и създайте потребителя в PostgreSQL, ако все още не съществува.
Вижте документите за pg_hba.conf
и останалата част от главата за удостоверяване на клиента от документацията.
Имайте предвид, че се променя в pg_hba.conf
не влизат в сила незабавно, трябва да рестартирате или поне да презаредите PostgreSQL, за да го накарате да прочете отново pg_hba.conf
.
О, също така, ако имате инсталирани множество версии на PostgreSQL, може да имате libpq от една версия и сървър от друга. В този случай се уверете, че местоположението на unix сокета, към който libpq се свързва по подразбиране, е същото като unix_socket_directories
на сървъра или го заменете с (напр.) host=/tmp
във вашия низ за връзка.