Eu instalei o PostgreSQL 8.4, cliente Postgres e o Pgadmin 3. A autenticação falhou para usuário "postgres" tanto para o cliente de console quanto para o Pgadmin. Eu digitei usuário como "postgres" e senha "postgres", porque funcionava antes. Mas agora a autenticação falhou. Eu fiz isso antes algumas vezes sem esse problema. O que eu devo fazer? E o que acontece?
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"
Se eu me lembro corretamente, o usuário postgres
não tem DB senha definida no Ubuntu por padrão. Isso significa que você só pode entrar nessa conta utilizando a conta OS user postgres
__OS.
Assumindo, que você tem "acesso de raiz" na caixa que você pode fazer:
sudo -u postgres psql
Se isso falhar com um erro database "postgres" does not exist
, então é muito provável que você não esteja em um servidor Ubuntu ou Debian :-) Neste caso simplesmente adicione template1
ao comando:
sudo -u postgres psql template1
Se algum desses comandos falhar com um erro psql: FATAL: a autenticação da senha falhou para usuário "postgres"
então verifique o arquivo /etc/postgresql/8.4/main/pg_hba.conf
: Deve haver uma linha como esta como a primeira linha sem comentários:
local all postgres ident
Para versões mais recentes do PostgreSQL ident
na verdade pode ser peer
. Isso's OK também.
Dentro da shell psql
você pode dar ao usuário __DB postgres
uma senha:
ALTER USER postgres PASSWORD 'newPassword';
Pode deixar a shell psql
digitando CtrlD ou com o comando \q
.
Agora você deve ser capaz de dar ao pgAdmin uma senha válida para o superusuário DB e ele ficará feliz também :-)
A resposta do pessoal está correta, mas se você quiser automatizar mais pode fazer:
$ sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';"
Done! Você salvou Usuário = postgres e senha = postgres.
Se você não tiver uma senha para o usuário postgres ubuntu do ubuntu do:
$ sudo passwd postgres
Tente não usar o parâmetro -W e deixe a senha em branco. Por vezes o utilizador é criado sem palavra-passe.
Se isso não funcionar't funciona reinicialize a senha. Há várias maneiras de fazer isso, mas isso funciona em muitos sistemas:
$ su root
$ su postgres
$ psql -h localhost
> ALTER USER postgres with password 'YourNewPassword';