2011-08-12 18 views
13

Zainstalowałem serwer PostgreSQL 8.4 na moim serwerze CentOS z powodzeniem. Po tym, mogę się zalogować do serwera CentOS za pomocą użytkownika „postgres”, ale nie mogę uruchomić dowolne polecenie, błąd występuje:uwierzytelnianie hasłem nie powiodło się dla użytkownika "postgres"

uwierzytelniania hasła nie powiodło się dla użytkownika „postgres”

Oto niektóre konfiguracje w pg_hba.conf i postgresql.conf:

--------------------configuration in postgresql.conf----------- 
listen_addresses = '*' 

--------------------configuration in pg_hba.conf--------------- 
local all   all        md5 
local all   postgres       md5 
host all   all   127.0.0.1/32   md5 
host all   all   ::1/128    md5 

Odpowiedz

11

Zapewnienie użyć hasła do konta PostgreSQL PostgreSQL, a nie konta systemowego postgres. Spróbuj "zaufać" zamiast "md5" w pliku pg_hba.conf, aby połączyć się z bazą danych i zmienić hasło.

+0

jaka jest różnica między kontem systemu PostgreSQL i PostgreSQL PostgreSQL konta? i jak mogę sprawdzić, czy używam konta postgres PostgreSQL, czy nie? –

+0

Powinieneś wiedzieć, którego hasła używasz. – Daniel

+0

Użyłem hasła do konta PostgreSQL. –

14

I mają tendencję do używania następujących w pg_hba.conf:

# Database administrative login by UNIX sockets 
local all   postgres       ident 

# TYPE DATABASE USER  CIDR-ADDRESS   METHOD 
local all   all        md5 
host all   all   127.0.0.1/32   md5 
host all   all   ::1/128    md5 

Oznacza to, że gdy jesteś "postgres", nie trzeba hasło, ale trzeba stać prawa sudo postgres, więc jest to całkiem bezpieczne. Każdy inny użytkownik może zalogować się za pomocą prostego uwierzytelniania md5, co oznacza, że ​​nie musisz sudo w każdym miejscu. To działa dobrze dla mnie.

8

Spotkałem podobny problem (ten sam komunikat o błędzie). Tak jak odpowiedź Daniela, to dlatego, że pomylam między:

"Postgres PostgreSQL konto, a nie konto systemu postgres."

Aby upewnić się o hasło postgres, po prostu go zmienić na „123456” (lub innego hasła)

# su postgres 
# psql -d template1 
template1=# ALTER USER postgres WITH PASSWORD '123456'; 
Powiązane problemy