L'autenticazione della password di Postgres non riesce


36

Ho installato PostgreSQL 9.1 e pgadmin3 su Ubuntu Server 13.10.

Ho configurato postgresql.conf con: listen_addresses = '*'

inoltre ho configurato ph_hba.conf modificando le connessioni peer a md5

Inoltre ho resettato la password di postgres tramite: sudo password postgres

quindi riavviato il servizio con sudo /etc/init.d/postgresql restart

successivamente ho provato a connettermi al database dei template PostgreSQL predefinito:

sudo -u postgres psql template1

ma l'accesso non è riuscito con questo messaggio di errore:

psql: FATAL:  password authentication failed for user "postgres"

poi ho provato ad accedere da pgadmin, il che mi ha dato lo stesso errore.

Ho letto qui che potrebbe essere un bug per le date di scadenza della password L' utente PostgreSQL non può connettersi al server dopo aver cambiato la password

ma non sono riuscito a risolverlo perché non riesco ad accedere con psql. Qualcuno ora come risolvere questo problema?

MODIFICARE

file ph_hba:

Qui

Immagine dello schermo:

inserisci qui la descrizione dell'immagine


7
Sono abbastanza irritato dal fatto che tu abbia clonato questo post. Ho appena scritto una risposta a questo, solo per scoprire che hai anche pubblicato una domanda identica su stackoverflow.com che aveva già una risposta accettata. Non copiare e incollare le risposte tra i siti, stai sprecando il tempo di tutti e stai rendendo più difficile trovare informazioni. Se insisti nel fare questo, crea collegamenti tra di loro.
Craig Ringer,

Risposte:


67

Stai confondendo la password per l'utente unix "postgres" con la password del database per l'utente del database "postgres". Questi non sono gli stessi.

Ti sei bloccato, perché hai abilitato l' md5autenticazione per l'utente del database postgressenza impostare una password per l'utente del database postgres.

Aggiungi una nuova riga all'inizio di pg_hba.conf:

local    postgres     postgres     peer

quindi riavviare / ricaricare PostgreSQL e:

sudo -u postgres psql

Dal prompt risultante:

ALTER USER postgres PASSWORD 'my_postgres_password';

quindi rimuovere la riga aggiunta pg_hba.confe riavviare nuovamente Pg. Ora puoi usare la password che hai impostato sopra per connetterti a PostgreSQL come postgresutente.

Per saperne di più, leggi il capitolo "Autenticazione client" del manuale utente e la documentazione supg_hba.conf .


1
Test di una nuova pg9.6.6 in un server UBUNTU 16 LTS .... E sono rimasto sorpreso da tutti questi "problemi del principiante". Arriva qui con la soluzione ... Fai un passo alla volta ... La grande sorpresa: non funziona! psql -W postgresql://postgres:postgres@localhostproducendo di nuovo lo stesso "FATAL: autenticazione password non riuscita per l'utente 'postgres'"
Peter Krauss

Soluzione: tutte le linee di fiducia funzionano ...
Peter Krauss il

Sto usando ssh ... Dopo aver rimesso tutto su md5, uno per uno (locale, locale, host ...), solo la riga "host all 127.0.0.1/32 trust" non può cambiare, è stata conservata con " fiducia". Quindi, nuova domanda: perché?
Peter Krauss,

il pg_hba.conffile è di proprietà dell'utente di sistema postgres. Conosco solo la password del database dell'utente del database postgres, quindi la domanda è come posso modificare questo file conf senza cambiarne la proprietà?
Shailen,

Puoi dirmi per favore, a cosa local postgres postgres peerserve davvero la linea pg_hba.conf? Tutto funziona bene senza di essa
MaxCore

3

Prova a modificare la password del modello di database1 usando questo:

$ psql -c "ALTER USER postgres WITH PASSWORD 'yourPassword'" -d template1

Mi ha dato lo stesso errore ma con l'utente "root" anziché l'utente "postgres"
Shadin

Puoi spiegare perché questo può aiutare?
xliiv,

2

nel tuo pg_hba.conf

# IPv4 local connections:
# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
host    all         all         127.0.0.1/32         trust

se non funziona, prova con

host    all         all         your_ip/32         trust

quindi riavvia la tua base di dati funzionerà bene .. se ti fidi allora non c'è bisogno di password se fai MD5 quindi ti chiederà la password ...


3
non utilizzare questo approccio da nessuna parte, dovresti sempre limitare l'accesso degli utenti ai tuoi dati
Most Wanted

a meno che non si stia eseguendo un server CTF.
Pathfinder
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.