311 votes

J'ai oublié le mot de passe que j'ai saisi lors de l'installation de postgres

J'ai soit oublié soit erroné (lors de l'installation) le mot de passe de l'utilisateur par défaut de Postgres. Je n'arrive pas à l'exécuter et je reçois l'erreur suivante :

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

Existe-t-il de toute façon pour réinitialiser le mot de passe ou comment créer un nouvel utilisateur avec des privilèges de superutilisateur ?

Je suis nouveau chez Postgres et je viens de l'installer pour la première fois. J'essaie de l'utiliser avec Rails et je suis sous Mac OS X Lion.

172voto

SaeX Points 451

Lorsque vous vous connectez à postgres depuis la ligne de commande, n'oubliez pas d'ajouter -h localhost comme paramètre de ligne de commande. Si ce n'est pas le cas, postgres essaiera de se connecter en mode d'authentification PAR LES PAIRS.

Le ci-dessous montre une réinitialisation du mot de passe, une connexion échouée avec authentification PAR LES PAIRS et une connexion réussie à l'aide d'une connexion 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

Échec :

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

Utilisation de -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=#

95voto

SaiyanGirl Points 2378

Le fichier pg_hba.conf (C:\Program Files\PostgreSQL\9.3\data) a changé depuis que ces réponses ont été données. Ce qui a fonctionné pour moi, dans Windows, c'est d'ouvrir le fichier et de changer le METHOD md5 à 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

Ensuite, en utilisant pgAdmin III, je me suis connecté sans mot de passe et j'ai changé le mot de passe de l'utilisateur postgres' %-% en allant à File -> Change Password

23voto

Nathan Wailes Points 1507

J'avais juste ce problème sur Windows 10 et le problème dans mon cas était que je n'exécutais que psql et qu'il essayait par défaut de se connecter avec mon nom d'utilisateur Windows ("Nathan"), mais il n'y avait pas d'utilisateur PostgreSQL avec ce nom, et il ne me le disait pas. La

solution était donc d'exécuter psql -U postgres psql, puis le mot de passe que j'ai entré lors de l'installation a fonctionné.

17voto

Daniel Points 181

Juste une note, sur Linux Vous pouvez simplement exécuter sudo su - postgres pour devenir l'utilisateur de postgres et à partir de là changer ce qui est nécessaire en utilisant psql.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X