Postgresql: autenticazione della password fallita per l'utente "postgres"

Ho installato PostgreSQL 8.4, Postgres client e Pgadmin 3. L'autenticazione non è riuscita per l'utente "postgres" sia per la console client che per Pgadmin. Ho digitato utente come "postgres" e password "postgres", perché prima funzionava. Ma ora l'autenticazione è fallita. L'ho fatto prima un paio di volte senza questo problema. Cosa dovrei fare? E cosa succede?

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"
Soluzione

Se ricordo bene l'utente postgres non ha una password DB impostata di default su Ubuntu. Ciò significa che è possibile accedere a quell'account solo utilizzando l'account OS user di postgres.

Supponendo che abbiate l'accesso root sulla scatola, potete fare:

sudo -u postgres psql

Se questo fallisce con un errore database "postgres" does not exists, allora molto probabilmente non siete su un server Ubuntu o Debian :-) In questo caso aggiungete semplicemente template1 al comando:

sudo -u postgres psql template1

Se uno di questi comandi fallisce con un errore psql: FATAL: password authentication failed for user "postgres" allora controllate il file /etc/postgresql/8.4/main/pg_hba.conf: Ci deve essere una linea come questa come prima linea non commentata:

local   all         postgres                          ident

Per le versioni più recenti di PostgreSQL ident in realtà potrebbe essere peer. Anche questo va bene.

All'interno della shell psql si può dare una password al DB user postgres:

ALTER USER postgres PASSWORD 'newPassword';

Puoi lasciare la shell psql digitando CtrlD o con il comando \q.

Ora dovresti essere in grado di dare a pgAdmin una password valida per il superutente del DB e anche lui sarà felice. :-)

Commentari (14)

La risposta del personale è corretta, ma se si desidera automatizzare ulteriormente può fare:

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

Fatto! Hai salvato User = postgres e password = postgres.

Se non si dispone di una password per l'utente postgres ubuntu fare:

$ sudo passwd postgres.

Commentari (1)

Prova a non usare il parametro -W e lascia la password in bianco. A volte l'utente viene creato senza password.

Se questo non funziona resettate la password. Ci sono diversi modi per farlo, ma questo funziona su molti sistemi:

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