sql >> Databasteknik >  >> RDS >> PostgreSQL

PostgreSQL:FATAL - Peer-autentisering misslyckades för användare (PG::ConnectionBad)

"Peer-autentisering" betyder att den använder en unix-socket och förväntar sig att den anslutande unix-användaren ska ha samma unix-användarnamn som postgresql-användarnamnet.

Eftersom ditt lokala unix-användarnamn är funkdified och du försöker ansluta som användare goodsounds över en unix-domänsocket (local ) anslutning där din pg_hba.conf anger peer autentisering, Pg avvisar korrekt ditt anslutningsförsök.

Detta är standardbeteendet för många installationer när man använder unix-sockets.

Du kan:

  • Anslut via TCP/IP genom att ange ett värdnamn i dina databasanslutningsinställningar;
  • redigera pg_hba.conf för att använda md5 lösenordsautentisering istället för peer autentisering för unix-uttag (local anslutningstyp) så Pg accepterar lösenordsautentisering; eller
  • Anslut till ett PostgreSQL-användarnamn som är samma som ditt unix-användarnamn och skapa användaren i PostgreSQL om det inte finns ännu.

Se dokumenten för pg_hba.conf och resten av klientautentiseringskapitlet i dokumentationen.

Observera att ändringar till pg_hba.conf träder inte i kraft omedelbart, du måste starta om eller åtminstone ladda om PostgreSQL för att få den att läsa om pg_hba.conf .

Åh, också, om du har flera PostgreSQL-versioner installerade kan du ha en libpq från en version och en server från en annan. Se i det här fallet till att platsen för unix-socket som libpq ansluter till som standard är densamma som serverns unix_socket_directories eller åsidosätta den med (t.ex.) host=/tmp i din anslutningssträng.



  1. @@ROWCOUNT – Få antalet rader som påverkas av det senaste uttalandet i SQL Server

  2. SQL Server 2008- Få tabellbegränsningar

  3. Hur man installerar MySQL med phpMyAdmin på Debian 7

  4. Hur man ställer in MySQL-replikering i RHEL, Rocky och AlmaLinux