‘wachtwoordverificatie mislukt voor gebruiker postgres ‘

Ik heb PostgreSQL 8.4, Postgres-client en Pgadmin 3 geïnstalleerd. Verificatie mislukt voor gebruiker “postgres” voor zowel consoleclient als Pgadmin. Ik heb gebruiker getypt als “postgres” en wachtwoord “postgres”, omdat het eerder werkte. Maar nu is authenticatie mislukt. Ik heb het eerder een paar keer gedaan zonder dit probleem. Wat moet ik doen? En wat gebeurt er?

psql -U postgres -h localhost -W
Password for user postgres: 
psql: FATAL:  password authentication failed for user "postgres"
FATAL:  password authentication failed for user "postgres"

Antwoord 1, autoriteit 100%

Als ik het me goed herinner, heeft de gebruiker postgresstandaard geen DB-wachtwoord ingesteld op Ubuntu. Dat betekent dat u alleen op dat account kunt inloggen met het postgresOS-gebruikersaccount.

Ervan uitgaande dat u roottoegang heeft tot de box, kunt u het volgende doen:

sudo -u postgres psql

Als dat niet lukt met een database "postgres" does not exists-fout, dan zit je waarschijnlijk niet op een Ubuntu- of Debian-server 🙂 In dit geval voeg je gewoon template1naar het commando:

sudo -u postgres psql template1

Als een van deze opdrachten mislukt met een fout psql: FATAL: password authentication failed for user "postgres", controleer dan het bestand /etc/postgresql/8.4/main/pg_hba.conf: er moet een regel als deze zijn als de eerste regel zonder commentaar:

local   all         postgres                          ident

Voor nieuwere versies van PostgreSQL kan identeigenlijk peerzijn. Dat is ook goed.

Binnen de psql-shell kun je de DB-gebruikerpostgreseen wachtwoord geven:

ALTER USER postgres PASSWORD 'newPassword';

Je kunt de psql-shell verlaten door CtrlDte typen of met het commando \q.

Nu zou je pgAdmin een geldig wachtwoord voor de DB-supergebruiker moeten kunnen geven en dat zal ook gelukkig zijn. 🙂


Antwoord 2, autoriteit 21%

De reactie van het personeel is correct, maar als je verder wilt automatiseren kan dat:

$ sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';"

Klaar! Je hebt User = postgres en wachtwoord = postgres opgeslagen.

Als je geen wachtwoord hebt voor de gebruiker postgres ubuntu, doe dan:

$ sudo passwd postgres


Antwoord 3, autoriteit 5%

Dit was frustrerend, de meeste van de bovenstaande antwoorden zijn correct, maar ze vermelden niet dat u de databaseservice opnieuw moet startenvoordat de wijzigingen in het bestand pg_hba.conf van kracht worden.

dus als u de hierboven genoemde wijzigingen aanbrengt:

local   all         postgres                          ident

dan herstartals root (op centos is het zoiets als service service postgresql-9.2 herstart )
nu zou je toegang moeten hebben tot de db als de gebruiker postgres

$psql
psql (9.2.4)
Type "help" for help.
postgres=# 

Ik hoop dat dit informatie toevoegt voor nieuwe postgres-gebruikers


Antwoord 4, autoriteit 3%

Bewerk het bestand pg_hba.conf, voor Debian op /etc/postgresql/9.3/main/pg_hba.confen voor Red Hat/IBM-derivaten op /var/lib/pgsql/9.4/data/pg_hba.conf

  • Wijzig alle authenticatiemethoden in trust.
  • Linux-wachtwoord wijzigen voor postgres-gebruiker.
  • Server opnieuw opstarten.
  • Log in met psql -h localhost -U postgresen gebruik het zojuist ingestelde Unix-wachtwoord.
  • Als het werkt, moet u het bestand pg_hba.confopnieuw instellen op waarden met de methoden md5of identen opnieuw opstarten.

Antwoord 5, autoriteit 2%

Voor degenen die het voor de eerste keer gebruiken en geen informatie hebben over wat het wachtwoord is, kunnen ze de onderstaande stappen volgen (ervan uitgaande dat u ubuntu gebruikt):

  1. Open het bestand pg_hba.confin /etc/postgresql/9.x/main

    sudo vi pg_hba.conf 
    

    2.bewerk de onderstaande regel

    local   all             postgres                                peer
    

    naar

    local   all             postgres                                trust
    
  2. Herstart de server

     sudo service postgresql restart
    
  3. Eindelijk kunt u inloggen zonder dat u een wachtwoord nodig heeft, zoals weergegeven in de afbeeldingEindelijk kunt u inloggen zonder dat u een wachtwoord nodig heeft, zoals weergegeven in de afbeelding

Zie hier voor meer info


Antwoord 6

Vuistregel: JE MAG NOOIT EEN WACHTWOORD INSTELLEN VOOR DE POSTGRES-GEBRUIKER.

Als je een superuser-toegang van pgAdmin nodig hebt, maak dan een andere superuser aan. Op die manier kun je, als de inloggegevens voor die supergebruiker gecompromitteerd zijn, altijd naar de eigenlijke databasehost sshten en de supergebruiker handmatig verwijderen met

sudo -u postgres -c "DROP ROLE superuser;"

Antwoord 7

Probeer de parameter -W niet te gebruiken en laat het wachtwoord leeg. Soms wordt de gebruiker aangemaakt zonder wachtwoord.

Als dat niet werkt, stelt u het wachtwoord opnieuw in. Er zijn verschillende manieren om dit te doen, maar dit werkt op veel systemen:

$ su root
$ su postgres
$ psql -h localhost
> ALTER USER postgres with password 'YourNewPassword';

Antwoord 8

Als je postgres shell probeert in te loggen als postgres gebruiker, dan kun je de volgende commando’s gebruiken.

overschakelen naar postgres-gebruiker

# su - postgres

log in op psql

# psql

Hoop dat dat helpt


Antwoord 9

Als je eenmaal in je postgres-shell bent, voer je deze opdracht in

postgres=# \password postgres

Na het invoeren van deze opdracht wordt u gevraagd uw wachtwoord in te stellen, stel het wachtwoord in en probeer het dan.


Antwoord 10

Wanneer u postgresql installeert, is er geen wachtwoord ingesteld voor gebruiker postgres, u moet dit expliciet op Unix instellen met het commando:

sudo passwd postgres

Het zal uw sudo-wachtwoord vragen en u vervolgens vragen om een ​​nieuw postgres-gebruikerswachtwoord.
Bron


Antwoord 11

Oud onderwerp, maar ik heb hier in 2020 een halve dag aan verspild, dus dit kan iemand helpen: controleer je postgres-poort nogmaals (op Ubuntu staat deze in /etc/postgresql/9.5/main/postgresql.conf). De psql-client gebruikt standaard poort 5432, MAAR in mijn geval draaide de server op poort 5433. De oplossing was om de -p optie in psql op te geven (bijv. psql --host=localhost --username=user -p 5433 mydatabase).

Als je de parameter –host weglaat, zal psql verbinding maken via een socket, wat in mijn geval werkte, maar mijn Golang-app (die TCP/IP gebruikt) niet. Helaas was de foutmelding password authentication failed for user "user", wat misleidend was. De oplossing was om een ​​url-verbindingsreeks met de poort te gebruiken (bijv. postgres://user:[email protected]:5433/mydatabase).

Mijn setup was Ubuntu 18.04 op Digital Ocean, met postgres 9.5 geïnstalleerd via apt-get, dus ik weet niet zeker waarom dit gebeurde. Ik hoop dat dit je wat tijd bespaart.


Antwoord 12

Als je een fout ziet

FATAL:  password authentication failed for user "postgres"

en u zeker weet dat uw wachtwoord correct is, controleer dan of het wachtwoord speciale tekens bevat, vooral “%”of schuine strepen.
In mijn geval was het “%” in de wachtwoordreeks. Na het verwijderen van dit symbool werkt alles goed.


Antwoord 13

De tijd vliegt!

In versie 12 moet ik hier “password” gebruiken in plaats van “ident”:

local   all             postgres                                password

Verbind zonder de optie -h te gebruiken.


Antwoord 14

Ik kreeg dezelfde fout te zien op Windows 10. In mijn geval, toen ik de Postgres instelde, was mijn gebruikersnaamstandaard postgres.
Maar toen ik de opdracht psqluitvoerde, werd mijn gebruikersnaamweergegeven als jitender, wat mijn machinenaam is, en ik weet niet waarom deze gebruikersnaam was ingesteld.

Hoe dan ook om het op te lossen, heb ik de volgende stappen uitgevoerd:
Voer het commando psql --help

uit

  • Zoek in de uitvoer naar de Verbindingsoptie, hier ziet u uw standaardgebruiker, in mijn geval als jitender.
  • Je krijgt ook de opdracht om de andere gebruikersnaam in te stellen, die psql –username postgresmoet zijn. Je stelt de gebruikersnaam in wat je nodig hebt, en dat is alles, het probleem is opgelost.

Antwoord 15

Allereerst wachtwoordkrat

ALTER USER postgres with encrypted password 'postgres';

dan herstart service:

sudo systemctl restart postgresql.service

Einde.


Antwoord 16

Hier zijn enkele combinaties waarmee ik heb geprobeerd in te loggen:

# login via user foo
psql -Ufoo -h localhost
sudo -u postgres psql postgres
# user foo login to postgres db
psql -Ufoo -h localhost -d postgres

Antwoord 17

In mijn geval gebruikte Ubuntu 20.04 Postgresql 12 de verkeerde poort.

Ik heb /etc/postgresql/12/main/postgresql.confgecontroleerd en realiseerde me dat het 5433was in plaats van 5432.


Antwoord 18

Ik wilde even toevoegen dat je ook moet controleren of je wachtwoord is verlopen.

Zie Postgres-wachtwoordverificatie misluktvoor details.


Antwoord 19

Ik had een soortgelijk probleem.
Ubuntu liet me inloggen in de console met een wachtwoord voor superuser.
Behalve wanneer ik verbinding maakte met -h localhost in de psql-regelopdracht.

Ik merkte ook op dat “localhost:8080/MyJSPSiteLogIn” – liet zien: Fataal: authenticatiefout met gebruiker “gebruiker”.

pg_hba.conf was in orde.

Ik merkte op dat er twee versies van postgres in dezelfde service draaiden.

Opgelost – inutil-versie verwijderen.


Antwoord 20

Ik had een soortgelijk probleem gehad.
Bij het openen van een database kreeg ik onderstaande prompt na het bijwerken van het wachtwoord
“wachtwoordverificatie mislukt voor gebruiker postgres ” in PGAdmin


Oplossing:

  1. Sluit postgres-server af
  2. Pgadmin opnieuw uitvoeren
  3. pgadmin zal om een ​​wachtwoord vragen.
  4. Voer het huidige wachtwoord van de genoemde gebruiker in

Ik hoop dat het je probleem zal oplossen

voer hier de afbeeldingsbeschrijving in


Antwoord 21

Dit gebeurt vanwege caching.

Als je php artisan config:cache uitvoert, worden de configuratiebestanden in de cache opgeslagen. Telkens wanneer er iets verandert, moet u het blijven uitvoeren om de cachebestanden bij te werken. Maar het zal niet in de cache worden opgeslagen als je dat commando nooit uitvoert.

Dit is OK voor productie, aangezien de configuratie niet zo vaak verandert. Maar tijdens staging of dev kun je caching gewoon uitschakelen door de cache te wissen en de cache-opdracht niet uit te voeren

Dus, voer gewoon php artisan config:clear uit en voer de opdracht niet eerder uit om caching te voorkomen.

Controleer originele post

Fout bij wachtwoordverificatie mislukt bij het uitvoeren van laravel-migratie


Antwoord 22

In mijn geval was het wachtwoord langer dan 100 tekens. Het instellen van een wachtwoord met een kleiner karakter werkte.

Eigenlijk vraag ik me af of daar ergens een verwijzing naar is.


Antwoord 23

Houd er rekening mee dat als je twee versies van Postgres hebt geïnstalleerd, je er één moet verwijderen, in mijn geval op MacOS had ik één versie geïnstalleerd via .dmgen één via brew.

Wat voor mij werkte, was het verwijderen van degene die was geïnstalleerd via .dmgmet behulp van de volgende stappen

  1. Ga naar /Library/PostgreSQL/13.
  2. Open uninstall-postgres.app.

probeer dan

psql postgres

het zou moeten werken.


Antwoord 24

Het gegeven antwoord is bijna correct, er ontbreken alleen enkele aanwijzingen die ik in mijn oplossing zal behandelen

Zorg er eerst voor dat uw gebruiker sudo-toegang heeft, anders kunt u de onderstaande opdracht gebruiken om uw gebruiker toe te voegen als sudo-gebruiker:-

sudo adduser <username> sudo

De wijziging wordt van kracht de volgende keer dat de gebruiker inlogt.

i) Ga nu naar het bestand sudo vim /etc/postgresql/<your_postgres_version>/main/pg_hba.confen zoek naar de regel die zegt:

local   all             postgres                                md5 #peer

en becommentarieer dat. Net onder die regel moet een regel met commentaar staan ​​die zegt:

local   all             postgres                                peer

of voor oudere versies is het:-

local   all         postgres                          ident

Geef commentaar op die regel.

ii) Start nu de postgres opnieuw met een van deze commando’s:-

sudo /etc/init.d/postgresql restart

OF

sudo service postgresql restart

iii) U kunt nu eenvoudig inloggen op postgres met het volgende commando:

sudo -u postgres psql

iv) als je eenmaal binnen bent, kun je elke gewenste bewerking maken, in mijn geval wilde ik een nieuwe database maken, je kunt hetzelfde doen met het onderstaande commando:

CREATE DATABASE airflow_replica;

Antwoord 25

In mijn geval was het zo eenvoudig! Ik kreeg een fout in de toepassing JAVA Spring omdat ik de Database Superuser moest onthouden, deze wordt getoond tijdens het installatieproces PostgreSQL, in mijn geval zou de gegevensbron postgres zijn. Dus ik heb de naam correct toegevoegd en het werkt!


Antwoord 26

Ik hoop dat dit je weinig tijd zal helpen.
U kunt het wachtwoord van postgres sql wijzigen door het onderstaande commando te gebruiken.

Opdracht

sudo -u postgres psql

En vervolgens kunt u het wachtwoord bijwerken

Opdracht

Wijzig het postgres-wachtwoord van de gebruiker ‘YOUR_NEW_PASSWORD’;


Antwoord 27

  1. Open pg_hba.conf in een teksteditor (u kunt dit bestand vinden in uw postgres-installatiemap);
  2. Wijzig alle methodevelden om te vertrouwen (wat betekent dat u geen wachtwoord nodig heeft voor postgre);
  3. Voer in je console dit commando uit:
    “wijzig gebruiker postgres met wachtwoord ‘[mijn wachtwoord]’;” | psql -U postgres
    (wat betekent dat ik een gebruikerswachtwoord moet wijzigen voor [mijn wachtwoord] voor de gebruiker als parameter -U postgres)
  4. Et voila (vergeet niet de methode van vertrouwen terug te zetten naar degene die het beste voor u zou moeten zijn)

Ik hoop dat dit ooit iemand kan helpen.

Other episodes