sql >> Database teknologi >  >> RDS >> PostgreSQL

PostgreSQL:FATAL - Peer-godkendelse mislykkedes for bruger (PG::ConnectionBad)

"Peer-godkendelse" betyder, at den bruger en unix-socket og forventer, at den tilsluttede unix-bruger har det samme unix-brugernavn som postgresql-brugernavnet.

Da dit lokale unix-brugernavn er funkdified og du forsøger at oprette forbindelse som bruger goodsounds over en unix-domæne-socket (local ) forbindelse, hvor din pg_hba.conf angiver peer godkendelse, Pg afviser korrekt dit forbindelsesforsøg.

Dette er standardadfærden for mange installationer, når du bruger unix-sockets.

Du kan:

  • Opret forbindelse via TCP/IP ved at angive et værtsnavn i dine databaseforbindelsesindstillinger;
  • rediger pg_hba.conf at bruge md5 adgangskodegodkendelse i stedet for peer godkendelse til unix-stik (local forbindelsestype), så Pg accepterer adgangskodegodkendelse; eller
  • Forbind med et PostgreSQL-brugernavn, der er det samme som dit unix-brugernavn, og opret brugeren i PostgreSQL, hvis det ikke eksisterer endnu.

Se dokumenterne for pg_hba.conf og resten af ​​klientgodkendelseskapitlet i dokumentationen.

Bemærk, at ændringer til pg_hba.conf træder ikke i kraft med det samme, du skal genstarte eller i det mindste genindlæse PostgreSQL for at få den til at genlæse pg_hba.conf .

Åh, også, hvis du har flere PostgreSQL-versioner installeret, har du muligvis en libpq fra én version og en server fra en anden. I dette tilfælde skal du sikre dig, at placeringen for den unix-socket, som libpq opretter forbindelse til som standard, er den samme som serverens unix_socket_directories eller tilsidesætte det med (f.eks.) host=/tmp i din forbindelsesstreng.



  1. Hvordan kan jeg konvertere en SQL Server 2008 DateTimeOffset til en DateTime

  2. Sådan tester du PHP MySQL-databaseforbindelse ved hjælp af script

  3. SQL, Postgres OID'er, hvad er de, og hvorfor er de nyttige?

  4. Konverter MySQL til SQLite