Redefinindo a senha do PostgreSQL no Ubuntu [fechado]

91

No Ubuntu, instalei o banco de dados PostgreSQL e criei um superusuário para o servidor.

Se eu esquecer a senha do superusuário postgresql, como posso redefini-la (a senha) para esse usuário?

Tentei desinstalá-lo e instalá-lo novamente, mas o superusuário criado anteriormente foi mantido.

Ritesh Mehandiratta
fonte

Respostas:

208

Assumindo que você é o administrador da máquina, o Ubuntu concedeu a você o direito de usar o sudo para executar qualquer comando como qualquer usuário.
Também presumindo que você não restringiu os direitos no pg_hba.confarquivo (no /etc/postgresql/9.1/maindiretório), ele deve conter esta linha como a primeira regra:

# Database administrative login by Unix domain socket  
local   all             postgres                                peer

(Sobre a localização do arquivo: 9.1é a versão principal do postgres e maino nome do seu "cluster". Será diferente se usar uma versão mais recente do postgres ou nomes não padrão. Use o pg_lsclusterscomando para obter essas informações para sua versão / sistema).

De qualquer forma, se o pg_hba.confarquivo não tiver essa linha, edite o arquivo, adicione-o e recarregue o serviço com sudo service postgresql reload.

Então você deve ser capaz de fazer o login psqlcomo superusuário postgres com este comando shell:

sudo -u postgres psql

Uma vez dentro do psql, emita o comando SQL:

ALTER USER postgres PASSWORD 'newpassword';

Neste comando, postgresé o nome de um superusuário. Se o usuário cuja senha foi esquecida fosse ritesh, o comando seria:

ALTER USER ritesh PASSWORD 'newpassword';

Referências: PostgreSQL 9.1.13 Documentação, Capítulo 19. Autenticação do cliente

Lembre-se de que você precisa digitar postgres com um único S no final

Daniel Vérité
fonte
2
eu usei o seu método, meu nome de superusuário é ritesh meu pg_hba.conf é o mesmo que você mencionou.i execute o comando "ALTER USER postgres PASSWORD 'newpassword';" console está mostrando 'ALTER ROLE'. Então eu saí usando ctrl + c depois que eu executei um comando createuser. Ele está mostrando para inserir uma senha eu digitei nova senha, mas está me dando um erro "createuser: não foi possível conectar ao banco de dados postgres: FATAL : a autenticação da senha falhou para o usuário "ritesh" ".como criar um usuário e qual deve ser a senha para este comando ??
Ritesh Mehandiratta
Se você deseja alterar a senha de ritesh, altere o SQL acima paraALTER USER ritesh PASSWORD 'newpassword'
Daniel Vérité
você deve reiniciar o postgres após alterar pg_hba.conf ....
Mahdi
1
Não há necessidade de reiniciar, apenas use pg_ctl reload.
hbn