Esqueci ou digitei incorretamente (durante a instalação) a senha do usuário padrão do Postgres. Não consigo executá-lo e recebo o seguinte erro:
psql: FATAL: password authentication failed for user "hisham"
hisham-agil: hisham$ psql
Existe uma maneira de redefinir a senha ou como criar um novo usuário com privilégios de superusuário?
Eu sou novo no Postgres e o instalei pela primeira vez. Estou tentando usá-lo com o Rails e estou executando o Mac OS X Lion.
Respostas:
encontre o arquivo
pg_hba.conf
- ele pode estar localizado, por exemplo, em/etc/postgresql-9.1/pg_hba.conf
.cd /etc/postgresql-9.1/
Apoia-la
cp pg_hba.conf pg_hba.conf-backup
coloque a seguinte linha (como a primeira linha não comentada ou como a única):
reinicie o servidor PostgreSQL (por exemplo, no Linux :)
sudo /etc/init.d/postgresql restart
Se o serviço (daemon) não iniciar o relatório no arquivo de log:
você deveria mudar
local all all trust
para
host all all 127.0.0.1/32 trust
agora você pode se conectar como qualquer usuário. Conecte-se como superusuário
postgres
(observe que o nome do superusuário pode ser diferente em sua instalação. Em alguns sistemas, é chamadopgsql
, por exemplo ) .psql -U postgres
ou
psql -h 127.0.0.1 -U postgres
(observe que, com o primeiro comando, você nem sempre estará conectado ao host local)
Redefinir senha ('substitua my_user_name pelo postgres, pois você está redefinindo o usuário do postgres )
ALTER USER my_user_name with password 'my_secure_password';
Restaurar o antigo
pg_hba.conf
, pois é muito perigoso ficar por pertocp pg_hba.conf-backup pg_hba.conf
reinicie o servidor para executar com o cofre
pg_hba.conf
sudo /etc/init.d/postgresql restart
Leitura adicional sobre esse arquivo pg_hba: http://www.postgresql.org/docs/9.1/static/auth-pg-hba-conf.html
fonte
psql
? Ainda estou sendo solicitado aAo conectar-se ao postgres a partir da linha de comando, não se esqueça de adicionar
-h localhost
como parâmetro da linha de comando. Caso contrário, o postgres tentará se conectar usando o modo de autenticação PEER.A seguir, mostramos uma redefinição da senha, um login com falha na autenticação PEER e um login bem-sucedido usando uma conexão TCP.
Falha:
Trabalhando com
-h localhost
:fonte
O arquivo
pg_hba.conf
(C:\Program Files\PostgreSQL\9.3\data
) mudou desde que essas respostas foram dadas. O que funcionou para mim, no Windows, é abrir o arquivo e mudar aMETHOD
partirmd5
detrust
:Depois, usando o pgAdmin III, efetuei login sem senha e alterei a
postgres'
senha do usuário , acessandoFile -> Change Password
fonte
trust
que você pode seguir este e senha alter em cmdApenas uma observação, no Linux Você pode simplesmente executar
sudo su - postgres
para se tornar o usuário do postgres e, a partir daí, alterar o que é necessário usando o psql.fonte
Edite o arquivo
/etc/postgresql/<version>/main/pg_hba.conf
e encontre a seguinte linha:Edite a linha e altere
md5
no final paratrust
e salve o arquivoRecarregue o serviço postgresql
Isso carregará os arquivos de configuração. Agora você pode modificar o
postgres
usuário efetuando login nopsql
shellAtualize a
postgres
senha do usuárioEdite o arquivo
/etc/postgresql/<version>/main/pg_hba.conf
etrust
volte paramd5
e salve o arquivoRecarregue o serviço postgresql
Verifique se a alteração da senha está funcionando
fonte
Eu estava tendo esse problema no Windows 10 e o problema no meu caso era que eu estava apenas executando
psql
e estava tentando fazer logon com meu nome de usuário do Windows ("Nathan"), mas não havia nenhum usuário do PostgreSQL com esse nome, e não estava me dizendo isso.Portanto, a solução foi executar,
psql -U postgres
e não apenaspsql
, e a senha que eu inseri na instalação funcionou.fonte
Adicionando a resposta para o usuário do Windows para a versão mais recente do postgres (> 10),
Vá para o local de instalação do postgres e pesquise
pg_hba.conf
, você o encontrará em..\postgres\data\pg_hba.conf
Abra esse arquivo com o bloco de notas, encontre esta linha,
Mude o método de md5 para trust,
Agora vá para o seu SQL Shell (PSQL) e deixe tudo em branco,
Desta vez, não solicitará a senha e você estará logado,
Agora execute esta linha,
ALTER USER yourusername WITH SUPERUSER
Agora você pode deixar o shell com \ q
Novamente, vá para o arquivo pg_hba.conf e altere METHOD de trust para md5 novamente e salve-o.
Agora entre com seu novo usuário e senha e você pode verificar \ du por seus atributos.
fonte
Para instalação do Windows, um usuário do Windows é criado. E "psql" usa esse usuário para conectar-se à porta. Se você alterar a senha do usuário do PostgreSQL, a senha do Windows não será alterada. O juste da linha de comando abaixo funciona apenas se você tiver acesso à linha de comando.
Em vez disso, você pode usar o aplicativo da GUI do Windows "c: \ Windows \ system32 \ lusrmgr.exe". Este aplicativo gerencia usuários criados pelo Windows. Agora você pode modificar a senha.
fonte
O que fiz para resolver o mesmo problema foi:
Abra o arquivo pg_hba.conf com o editor gedit no terminal:
Ele solicitará a senha. Digite sua senha de login do administrador. Isso abrirá o gedit com o arquivo Cole a seguinte linha:
logo abaixo -
Salve e feche-o. Feche o terminal, abra-o novamente e execute este comando:
Agora você entrará no console psql. Agora mude a senha digitando o seguinte:
Se diz que o usuário não existe, em vez de
ALTER
usarCREATE
.Por fim, remova a linha que você colou em pg_hba e salve-a.
fonte
Se você estiver no Windows, basta executar
e faça o login no postgres com o postgres / postgres como usuário / senha
fonte
O arquivo .pgpass no diretório inicial de um usuário ou o arquivo referenciado por PGPASSFILE pode conter senhas a serem usadas se a conexão exigir uma senha (e nenhuma senha foi especificada de outra forma). No Microsoft Windows, o arquivo é nomeado% APPDATA% \ postgresql \ pgpass.conf (em que% APPDATA% se refere ao subdiretório Dados do Aplicativo no perfil do usuário).
Este arquivo deve conter linhas do seguinte formato:
nome do host: porta: banco de dados: nome de usuário: senha
(Você pode adicionar um comentário de lembrete ao arquivo, copiando a linha acima e precedendo-a com #.) Cada um dos quatro primeiros campos pode ser um valor literal, ou *, que corresponda a qualquer coisa. O campo de senha da primeira linha que corresponde aos parâmetros de conexão atuais será usado. (Portanto, coloque as entradas mais específicas primeiro quando você estiver usando caracteres curinga.) Se uma entrada precisar conter: ou \, escape esse caractere com. Um nome de host localhost corresponde às conexões TCP (nome do host localhost) e soquete do domínio Unix (pghost vazio ou diretório de soquete padrão) provenientes da máquina local. Em um servidor em espera, um nome de banco de dados de replicação corresponde às conexões de replicação de streaming feitas no servidor principal. O campo do banco de dados é de utilidade limitada porque os usuários têm a mesma senha para todos os bancos de dados no mesmo cluster.
Nos sistemas Unix, as permissões no .pgpass devem proibir qualquer acesso ao mundo ou grupo; consiga isso com o comando chmod 0600 ~ / .pgpass. Se as permissões forem menos rigorosas que isso, o arquivo será ignorado. No Microsoft Windows, supõe-se que o arquivo esteja armazenado em um diretório seguro, portanto, nenhuma verificação especial de permissões é feita.
fonte
Se você estiver executando o postgresql no mac os, tente o seguinte :
Edite o arquivo pg_hba.conf
sudo vi /Library/PostgreSQL/9.2/data/pg_hba.conf
Altere o método "md5" para que todos os usuários "confiem" na parte inferior do arquivo
Encontre o nome do serviço
ls / Library / LaunchDaemons
Procure pelo postgresql
Pare o serviço postgresql
sudo launchctl stop com.edb.launchd.postgresql-9.2
Inicie o serviço postgresql
sudo launchctl start com.edb.launchd.postgresql-9.2
Inicie a sessão do psql como postgres
psql -U postgres
(não deve pedir senha devido à configuração de 'confiança')
Redefina a senha na sessão psql digitando
ALTER USUÁRIO postgres com a senha 'secure-new-password';
entrar
Edite o arquivo pg_hba.conf
Volte para 'md5'
Reinicie os serviços novamente
fonte
Isto é o que funcionou para mim no Windows:
Edite o arquivo pg_hba.conf localizado em C: \ Arquivos de Programas \ PostgreSQL \ 9.3 \ data.
# IPv4 local connections: host all all 127.0.0.1/32 trust
Altere o método de trust para md5 e reinicie o serviço postgres no Windows.
Depois disso, você pode fazer login usando o usuário do postgres sem senha usando o pgadmin. Você pode alterar a senha usando Arquivo-> Alterar senha.
Se o usuário do postgres não tiver privilégios de superusuário, você não poderá alterar a senha. Nesse caso, efetue login com outro usuário (pgsql) com acesso de superusuário e forneça privilégios a outros usuários clicando com o botão direito do mouse em usuários e selecionando properties-> Privilégios de função.
fonte