sql >> Database >  >> RDS >> PostgreSQL

PostgreSQL:FATAL - Peer-authenticatie mislukt voor gebruiker (PG::ConnectionBad)

"Peer-authenticatie" betekent dat het een unix-socket gebruikt en verwacht dat de verbindende unix-gebruiker dezelfde unix-gebruikersnaam heeft als de postgresql-gebruikersnaam.

Aangezien uw lokale Unix-gebruikersnaam funkdified is en je probeert verbinding te maken als gebruiker goodsounds via een unix domein socket (local ) verbinding waar uw pg_hba.conf specificeert peer authenticatie, Pg wijst uw verbindingspoging correct af.

Dit is het standaardgedrag voor veel installaties bij het gebruik van unix-sockets.

U kunt:

  • Verbind via TCP/IP door een hostnaam op te geven in uw databaseverbindingsinstellingen;
  • bewerk pg_hba.conf om md5 te gebruiken wachtwoordverificatie in plaats van peer authenticatie voor unix-sockets (local verbindingstype) zodat Pg wachtwoordverificatie accepteert; of
  • Maak verbinding met een PostgreSQL-gebruikersnaam die gelijk is aan uw Unix-gebruikersnaam en maak de gebruiker aan in PostgreSQL als deze nog niet bestaat.

Zie de documenten voor pg_hba.conf en de rest van het hoofdstuk over clientauthenticatie van de documentatie.

Merk op dat wijzigingen in pg_hba.conf niet onmiddellijk van kracht worden, moet u PostgreSQL opnieuw opstarten of ten minste opnieuw laden om het pg_hba.conf opnieuw te laten lezen .

Oh, ook, als je meerdere PostgreSQL-versies hebt geïnstalleerd, heb je misschien een libpq van de ene versie en een server van een andere. Zorg er in dit geval voor dat de locatie voor de unix-socket waarmee libpq standaard verbinding maakt, dezelfde is als de unix_socket_directories van de server of overschrijf het met (bijv.) host=/tmp in uw verbindingsreeks.



  1. De naam van de huidige functie binnen de functie krijgen met plpgsql

  2. Een overzicht van de nieuwe DBaaS van MariaDB - SkySQL

  3. Hoe kan ik in de kortst mogelijke tijd 10 miljoen records invoegen?

  4. Voeg CreatedBy en CreatedOn in alle ontbrekende gegevenstabellen in SQL