Namestil sem PostgreSQL 8.4, odjemalca Postgres in Pgadmin 3. Preverjanje pristnosti za uporabnika "postgres" je neuspešno tako za konzolni odjemalec kot za Pgadmin. Uporabnika sem vnesel kot "postgres" in geslo "postgres", ker je prej delovalo. Toda zdaj je avtentikacija neuspešna. Pred tem sem to storil nekajkrat brez te težave. Kaj naj storim? In kaj se zgodi?
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"
Če se prav spomnim, uporabnik postgres
v Ubuntuju privzeto nima nastavljenega gesla DB. To pomeni, da se lahko v ta račun prijavite samo z uporabo računa postgres
OS user.
Ob predpostavki, da imate dostop korenski
na škatli, lahko naredite:
sudo -u postgres psql
Če to ne uspe z napako databaza "postgres" ne obstaja
, potem najverjetneje niste na strežniku Ubuntu ali Debian :-) V tem primeru v ukaz preprosto dodajte template1
:
sudo -u postgres psql template1
Če kateri koli od teh ukazov ne uspe z napako psql: FATAL: overitev gesla ni uspela za uporabnika "postgres"
, potem preverite datoteko /etc/postgresql/8.4/main/pg_hba.conf
: Kot prva vrstica brez komentarja mora biti takšna vrstica:
local all postgres ident
Pri novejših različicah PostgreSQLa je ident
dejansko lahko peer
. Tudi to je v redu.
V lupini psql
lahko uporabniku DB postgres
dodelite geslo:
ALTER USER postgres PASSWORD 'newPassword';
Ovojnico psql
lahko zapustite tako, da vtipkate CtrlD ali z ukazom \q
.
Zdaj boste lahko pgAdminu dali veljavno geslo za superuporabnika DB in tudi on bo zadovoljen :-).
Odziv osebja je pravilen, če pa želite dodatno avtomatizirati, lahko to storite:
$ sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';"
Sprej! Uporabnik = postgres in geslo = postgres.
Če nimate gesla za uporabnika postgres ubuntu, naredite:
$ sudo passwd postgres
Poskusite ne uporabljati parametra -W in pustite geslo prazno. Včasih je uporabnik ustvarjen brez gesla.
Če to ne deluje, ponovno nastavite geslo. To lahko storite na več načinov, vendar ta način deluje v številnih sistemih:
$ su root
$ su postgres
$ psql -h localhost
> ALTER USER postgres with password 'YourNewPassword';