J'ai installé PostgreSQL 8.4, le client Postgres et Pgadmin 3. L'authentification a échoué pour l'utilisateur "postgres" ; pour le client de la console et Pgadmin. J'ai saisi l'utilisateur "postgres" ; et le mot de passe "postgres" ;, car cela fonctionnait auparavant. Mais maintenant l'authentification échoue. Je l'ai déjà fait plusieurs fois sans ce problème. Que dois-je faire ? Et que se passe-t-il ?
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"
Si je me souviens bien, l'utilisateur postgres
n'a pas de mot de passe DB défini par défaut sur Ubuntu. Cela signifie que vous pouvez vous connecter à ce compte uniquement en utilisant le compte postgres
OS user.
En supposant que vous avez un accès root
sur la machine, vous pouvez le faire :
sudo -u postgres psql
Si cela échoue avec une erreur database "postgres" ; does not exists
, alors vous n'êtes probablement pas sur un serveur Ubuntu ou Debian :-) Dans ce cas, ajoutez simplement template1
à la commande :
sudo -u postgres psql template1
Si l'une de ces commandes échoue avec une erreur psql : FATAL : password authentication failed for user "postgres"`` alors vérifiez le fichier
/etc/postgresql/8.4/main/pg_hba.conf` : Il doit y avoir une ligne comme celle-ci comme première ligne sans commentaire :
local all postgres ident
Pour les versions plus récentes de PostgreSQL, ident
peut en fait être peer
. C'est également acceptable.
Dans le shell psql
, vous pouvez donner un mot de passe à l'utilisateur DB postgres
:
ALTER USER postgres PASSWORD 'newPassword';
Vous pouvez quitter le shell psql
en tapant CtrlD ou avec la commande \q
.
Maintenant vous devriez pouvoir donner à pgAdmin un mot de passe valide pour le super-utilisateur de la base de données et il sera content aussi :-)
La réponse du personnel est correcte, mais si vous voulez automatiser davantage, vous pouvez le faire :
`$ sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';"``
C'est fait ! Vous avez enregistré Utilisateur = postgres et mot de passe = postgres.
Si vous n'avez pas de mot de passe pour l'utilisateur postgres ubuntu, faites-le :
$ sudo passwd postgres
Essayez de ne pas utiliser le paramètre -W et laissez le mot de passe en blanc. Parfois, l'utilisateur est créé sans mot de passe.
Si cela ne fonctionne pas, réinitialisez le mot de passe. Il existe plusieurs façons de le faire, mais cette méthode fonctionne sur de nombreux systèmes :
$ su root
$ su postgres
$ psql -h localhost
> ALTER USER postgres with password 'YourNewPassword';