Esqueci-me da senha que introduzi durante a instalação do postgres.

ou esqueci ou mistifiquei (durante a instalação) a senha para o utilizador predefinido do Postgres. Parece que não consigo executá-lo e tenho o seguinte erro:

psql: FATAL:  password authentication failed for user "hisham"
hisham-agil: hisham$ psql 

Existe de qualquer forma para repor a senha ou como é que eu crio um novo utilizador com privilégios de super-utilizador?

Sou novo no Postgres e instalei-o pela primeira vez. Estou a tentar usá-lo com Carris e estou a gerir o Mac OS X Lion.

Author: Ben, 2012-06-01

9 answers

  1. Encontre o ficheiro pg_hba.conf - ele pode estar localizado, por exemplo em /etc/postgresql-9.1/pg_hba.conf.

    cd /etc/postgresql-9.1/

  2. Para trás.

    cp pg_hba.conf pg_hba.conf-backup

  3. Colocar a seguinte linha (quer como a primeira linha não comentada, quer como a única):

    local all all trust

  4. Reinicie o seu servidor de PostgreSQL (por exemplo, no Linux:)

    sudo /etc/init.d/postgresql restart

    Se o serviço (Servidor) não começar a comunicar no ficheiro de Registo:

    Local as ligações não são suportadas por esta compilação

    Você deve mudar

    local all all trust

    A

    host all all 127.0.0.1/32 trust

  5. Agora pode ligar-se como qualquer utilizador. Ligar como superusuário postgres (Nota, o nome do superusuário pode ser diferente na sua instalação. Em alguns sistemas é chamado pgsql, por exemplo.)

    psql -U postgres

    Ou

    psql -h 127.0.0.1 -U postgres

    (note que com o primeiro comando não estará sempre ligado com máquina local)

  6. Reiniciar a senha

    ALTER USER my_user_name with password 'my_secure_password';

  7. Restaurar o velho {[[0]} pois é muito perigoso {[80] } para manter em torno

    cp pg_hba.conf-backup pg_hba.conf

  8. Reinicie o servidor, a fim de correr com o cofre pg_hba.conf

    sudo /etc/init.d/postgresql restart

mais informações sobre o ficheiro pg_hba: http://www.postgresql.org/docs/9.1/static/auth-pg-hba-conf.html

 261
Author: Arsen7, 2016-11-02 10:21:47

Ao ligar-se ao postgres a partir da linha de comandos, não se esqueça de adicionar -h localhost como parâmetro da linha de comandos. Caso contrário, o postgres irá tentar ligar-se usando o modo de autenticação por pares.

O abaixo mostra uma reinicialização da senha, uma autenticação falhada com a autenticação por pares e uma autenticação bem sucedida com uma ligação TCP.

# sudo -u postgres psql
could not change directory to "/root"
psql (9.1.11)
Type "help" for help.

postgres=# \password
Enter new password:
Enter it again:
postgres=# \q

Falha:

# psql -U postgres -W
Password for user postgres:
psql: FATAL:  Peer authentication failed for user "postgres"

Trabalhar com -h localhost:

# psql -U postgres -W  -h localhost
Password for user postgres:
psql (9.1.11)
SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256)
Type "help" for help.

postgres=#
 66
Author: SaeX, 2016-08-23 17:35:54

A pg_hba.conf (C:\Program Files\PostgreSQL\9.3\data) o ficheiro foi alterado desde que estas respostas foram dadas. O que funcionou para mim, no Windows, é abrir o arquivo e mudar o METHOD de md5 para trust:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust

Então, usando o pgAdmin III, entrei sem senha e mudei a senha do utilizador postgres' indo para File -> Change Password

 49
Author: SaiyanGirl, 2014-09-19 22:26:11

Apenas uma nota, no Linux você pode simplesmente executar sudo su - postgres para se tornar o usuário postgres e a partir daí mudar o que é necessário usando psql.

 5
Author: Daniel, 2018-03-12 16:43:12

Se estiver no windows, pode correr

net user postgres postgres

E autenticar-se em postgres com postgres / postgres como utilizador/Senha

 1
Author: ivofernandes, 2016-06-07 16:36:11

Para a instalação do Windows, é criado um utilizador do Windows. E "psql" use este Usuário para conexão com a porta. Se você alterar a senha do Usuário PostgreSQL, ela não mudará a do Windows. A linha de comando juste abaixo só funciona se você tiver acesso à linha de comando.

Em vez disso, poderá usar a aplicação GUI do Windows "c:\Windows\system32\lusrmgr.exe". Este aplicativo gerencia usuários criados pelo Windows. Então agora você pode modificar a senha.

 1
Author: cpunky, 2017-03-21 15:31:14
  1. Edite o ficheiro /etc/postgresql/<version>/main/pg_hba.conf e encontre a seguinte linha:

    local   all             postgres                                md5
    
  2. Editar a linha e alterar md5 no final para trust e gravar o ficheiro

  3. Recarregar o serviço pós-gresql

    $ sudo service postgresql reload
    
  4. Isto irá carregar os ficheiros de configuração. Agora você pode modificar o Usuário postgres entrando na linha de comandos psql

    $ psql -U postgres
    
  5. Actualizar a senha do utilizador postgres

    alter user postgres with password 'secure-passwd-here';
    
  6. Editar o ficheiro /etc/postgresql/<version>/main/pg_hba.conf e mudar trust de volta para md5 e gravar o ficheiro

  7. Recarregar o serviço pós-gresql

    $ sudo service postgresql reload
    
  8. Verifique se a alteração da senha está a funcionar

    $ psql -U postgres -W
    
 1
Author: Ray Hunter, 2017-08-17 02:55:49
O que fiz para resolver o mesmo problema foi:

Abra o pg_hba.ficheiro conf com o editor do gedit do terminal:

sudo gedit /etc/postgresql/9.5/main/pg_hba.conf

Ele vai pedir a senha. Indique a sua senha de autenticação administrativa. Isto irá abrir o gedit com o ficheiro. Colar a seguinte linha:

host  all   all  127.0.0.1/32  trust

Logo abaixo -

# Database administrative login by Unix domain socket
Guarda e fecha. Feche o terminal e abra-o de novo e execute este comando:
psql -U postgres

Agora vai entrar na consola psql. Agora altere a senha ao introduzir isto:

ALTER USER [your prefered user name] with password '[desired password]';

Se diz que o utilizador não existe então em vez de ALTER use CREATE.

Por último, remova a linha que colou no pg_hba e guarde-a.

 1
Author: Inconnu, 2017-11-14 12:08:38

O ficheiro .o pgpass em um diretório doméstico do usuário ou o arquivo referenciado pelo PGPASSFILE pode conter senhas a serem usadas se a conexão requer uma senha (e nenhuma senha foi especificada de outra forma). No Microsoft Windows, o ficheiro chama-se %APPDATA%\postgresql\pgpass.conf (em que %APPDATA% refere-se à sub-pasta de dados da aplicação no perfil do utilizador).

Este ficheiro deve conter as seguintes linhas: formato:

Nome da máquina: Porto:base de dados: utilizador: Senha

(pode adicionar um comentário de chamada de atenção ao ficheiro, copiando a linha acima e precedendo-a com #. Cada um dos quatro primeiros campos pode ser um valor literal, ou *, que corresponde 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 wildcards.) Se um item necessitar de conter: ou\, escapar deste carácter com . Anfitriao o nome do localhost corresponde às ligações TCP (nome da máquina localhost) e Unix domain socket (pghost empty or the default socket directory) que vêm da máquina local. Num servidor de espera, um nome de base de dados de replicação corresponde a ligações de replicação em streaming feitas para o servidor mestre. O campo de banco de dados é de utilidade limitada porque os usuários têm a mesma senha para todas as bases de dados no mesmo conjunto.

Em sistemas Unix, as permissões estão ligadas .o pgpass deve proibir qualquer acesso a world or group; achieve this by the command chmod 0600 ~/.pgpass. Se as permissões são menos rígidas do que isso, o arquivo será ignorado. No Microsoft Windows, assume-se que o arquivo é armazenado em um diretório que é seguro, então nenhuma verificação de permissões especiais é feita.

 0
Author: rahulnikhare, 2017-09-20 08:58:27