psql: FATAL: Ident échec de l'authentification de l'utilisateur “postgres”
J'ai installé PostgreSQL et pgAdminIII sur mon Ubuntu Karmic boîte.
Je suis en mesure d'utiliser pgAdminIII avec succès (c'est à dire se connecter/log on), cependant lorsque j'essaie de vous connecter au serveur en utilisant le même nom d'utilisateur/pwd sur la ligne de commande (à l'aide de psql), j'obtiens l'erreur:
psql: FATAL: Ident authentication failed for user "postgres"
Quelqu'un maintenant comment résoudre ce problème?
- Cette stackoverflow post a fonctionné pour moi: stackoverflow.com/a/18664239/2110769
Vous devez vous connecter pour publier un commentaire.
Avez-vous définissez les paramètres appropriés dans pg_hba.conf?
Voir https://help.ubuntu.com/stable/serverguide/postgresql.html comment le faire.
Les étapes suivantes de travail pour une nouvelle installation de postgres 9.1 sur Ubuntu 12.04. (Qui a travaillé pour postgres 9.3.9 sur Ubuntu 14.04 trop.)
Par défaut, postgresql crée un nom d'utilisateur 'postgres'. Nous nous connectons, comme elle, et de lui donner un mot de passe.
Déconnexion de
psql
en tapant\q
ouctrl+d
. Puis nous connecter en tant que 'postgres'. Le-h localhost
partie est important: il raconte l'psql
client que l'on souhaite se connecter en utilisant une connexion TCP (qui est configuré pour utiliser l'authentification par mot de passe), et non pas par une connexion HOMOLOGUE (ce qui ne se soucient pas du mot de passe).PGHOST=localhost
vous n'avez pas besoin de spécifier le-h
option à chaque fois. Cela fonctionne aussi avec d'autrespg_*
des commandes commepg_dump
.\q
. Ensuite, vous serez en mesure de typepsql -U postgres -h localhost
dans le contexte de$
Modifier le fichier
/etc/postgresql/8.4/main/pg_hba.conf
et remplacerident
oupeer
parmd5
outrust
, selon si vous souhaitez demander un mot de passe sur votre propre ordinateur ou pas.Puis de recharger le fichier de configuration avec:
restart
a fonctionné pour moi, pasreload
--- après les modifications/etc/postgresql/9.5/main/pg_hba.conf
(changement depeer
àtrust
)./etc/postgresql/9.5/main/pg_hba.conf
... donc, utiliser FrankHeikens du lien 🙂Vous obtenez ce message, car vous êtes à défaut d'authentification du client. Basé sur le message d'erreur, vous avez probablement le défaut postgres configuration, qui définit méthode d'authentification du client à "IDENT" pour tous PostgreSQL connexions.
Que vous devez absolument lire l'article 19.1 l'Authentification du Client dans le Manuel PostgreSQL afin de mieux comprendre les paramètres d'authentification disponibles (pour chaque enregistrement dans pg_hba.conf), mais ici, c'est l'extrait de code pour aider avec le problème que vous rencontrez (à partir de la la version 9.5 manuel):
Donc ... pour résoudre le problème que vous rencontrez, vous pouvez effectuer l'une des opérations suivantes:
Changer la méthode d'authentification(s) défini dans votre
pg_hba.conf
fichier
trust
,md5
, oupassword
(selon votre sécuritéet la simplicité des besoins) pour la connexion locale d'enregistrements
défini dans il.
Mise à jour
pg_ident.conf
de mapper les utilisateurs du système d'exploitation àUtilisateurs de PostgreSQL et de leur accorder le correspondant de privilèges d'accès,
en fonction de vos besoins.
Quitter la IDENT uniquement les paramètres et créer des utilisateurs dans votre base de données pour
chaque utilisateur du système d'exploitation que vous souhaitez accorder l'accès. Si un
l'utilisateur est déjà authentifié par le système d'exploitation et connecté, PostgreSQL
n'ont pas besoin de davantage d'authentification et d'accorder l'accès à ce
l'utilisateur quel qu'en soit privilèges (rôles) sont confiées dans le
la base de données. C'est la configuration par défaut.
Remarque: L'emplacement de
pg_hba.conf
etpg_ident.conf
est OS dépendante./var/lib/pgsql/data
./etc/postgresql/9.6/main/pg_hba.conf
.Simplement en ajoutant de l'
-h localhost
bits a été tout à moi tenus de travaillerthis_computer = 'http://localhost'
Vous pouvez définir la variable d'environnement
PGHOST=localhost
:Dans le cas où aucun des travaux ci-dessus pour vous:
J'ai fait un peu de Postgres installations, mais a été déconcerté aujourd'hui sur une RedHat 6.5 système (installation de Postgresql 9.3). Mon type de hba.conf configuration qu'Aron montre ci-dessus ne fonctionne pas. Il s'est avéré que mon système est à l'aide de IPV6, et en ignorant la configuration IPV4. L'ajout de la ligne:
m'a permis de me connecter avec succès.
J'ai trouvé que j'ai eu à installer un serveur d'identité, qui écoute sur le port 113.
Et puis ident travaillé.
De toutes les réponses ci-dessus rien n'a fonctionné pour moi. J'ai dû modifier manuellement le mot de passe des utilisateurs dans la base de données et il a soudainement travaillé.
J'ai utilisé les paramètres suivants:
pg_hba.conf
Connexion est réussie, enfin, pour la commande suivante:
Le problème est toujours votre pg_hba.fichier conf. Cette ligne: Vous pouvez trouver ce fichier dans /etc/postgresql/varion/main
Ce sont de brèves descriptions de ces deux options selon le rapport officiel de PostgreSQL docs sur les méthodes d'authentification.
Par les pairs de l'authentification
Par les pairs méthode d'authentification des œuvres par l'obtention d'exploitation du client de système de nom d'utilisateur à partir du noyau et de l'utiliser comme le permis de base de données nom d'utilisateur (avec option de mappage de noms d'utilisateurs). Cette méthode est uniquement pris en charge sur les connexions locales.
Authentification par mot de passe
Le mot de passe de l'authentification basée sur les méthodes de md5 et le mot de passe. Ces méthodes fonctionnent de la même façon, sauf pour la façon dont le mot de passe est envoyé à travers la connexion, à savoir MD5 hachée et texte clair respectivement.
Si vous êtes à tous les intéressés sur mot de passe "renifler" les attaques puis md5 est préféré. Plaine mot de passe doit toujours être évitée si possible. Cependant, md5 ne peut pas être utilisé avec le db_user_namespace fonctionnalité. Si la connexion est protégée par un cryptage SSL puis mot de passe peut être utilisé en toute sécurité (si l'authentification par certificat SSL peut être un meilleur choix si l'on est dépendant à l'aide de SSL).
Après la modification de ce fichier, n'oubliez pas de redémarrer votre serveur PostgreSQL. Si vous êtes sur Linux, ce serait
sudo service postgresql restart.
Hmmm ...
Si vous pouvez vous connecter avec le nom d'utilisateur et mot de passe dans pgAdminIII, mais vous ne pouvez pas vous connecter avec
psql
ces deux programmes sont probablement de la connexion à la base de données différemment.[Si vous êtes connecté à des bases de données différentes, d'abord essayer de se connecter à la même base de données. Voir ci-dessous.]
De PostgreSQL: Documentation: 9.3: psql:
Si vous n'êtes pas à l'exécution de quelque chose comme
psql ... -h host_name ...
, et vous êtes sous Ubuntu,psql
devrait être d'une connexion via Unix socket de domaine, de sorte que PostgreSQL n'est probablement pas configuré pour permettre à l'une des méthodes d'authentification par mot de passe pour le postgres utilisateur.Vous pouvez le tester en exécutant:
sudo -u postgres psql
Si les travaux ci-dessus, votre serveur est probablement configuré pour utiliser par les pairs d'authentification pour les connexions locales par le postgres de l'utilisateur, c'est à dire demander à l'OS de votre nom d'utilisateur pour confirmer que vous êtes postgres.
Donc C'est Probablement Votre pg_hba.conf Fichier
Le chemin d'accès complet du fichier sera quelque chose de comme /etc/postgresql/9.3/main/pg_hba.conf. Vous pouvez le voir, par ex.
sudo cat /etc/postgresql/9.3/main/pg_hba.conf | more
.Si vous êtes en omettant le nom d'hôte de votre
psql
de commande, vous devriez être en mesure de se connecter si vous ajoutez l'entrée suivante à votre pg_hba.conf fichier:[Lignes commentées dans la pg_hba.conf début du fichier avec
#
.]Si vous sont y compris le nom d'hôte de votre
psql
commande, ajoutez cette entrée à la place:Vous avez besoin de mettre de l'entrée avant toutes les autres entrées sont appariés pour votre connexion via
psql
. En cas de doute sur l'endroit où les mettre, il suffit de le placer avant le premier de l'onu-ligne de commentaires.Plus sur pg_hba.conf
De PostgreSQL: Documentation: 9.3: Le pg_hba.Fichier conf [gras c'est moi qui souligne]:
Noter que les enregistrements sont pas appariés sur la méthode d'authentification. Donc, si votre pg_hba.conf fichier contient l'entrée suivante:
Alors vous ne être en mesure de se connecter via:
psql -u postgres
À moins que l'une de ces entrées est dans votre pg_hba.conf fichier ci-dessus l'ancienne entrée:
ma solution sur PostgreSQL 9.3 sur Mac OSX en shell bash a été d'utiliser
sudo
aller dans le dossier de données, puis ajouter des lignes si nécessaire à lapg_hba.conf
fichier pour permettre à tous les utilisateurs de confiance et être en mesure de se connecter. C'est ce que j'ai fait:Si vous avez fait tout cela et il ne fonctionne toujours pas, vérifier la date d'expiration de l'utilisateur:
Postgres mot de passe de l'authentification échoue
J'ai passé plus de temps à la résolution de cette erreur que j'ai à l'admettre.
La commande de configuration d'authentification dans pg_hba.conf est pertinent dans votre cas je pense. Le fichier de configuration par défaut comprend plusieurs lignes dans une vanille installer. Ces valeurs par défaut peuvent correspondre à vos conditions de tentatives d'authentification entraînant un échec de l'authentification. Il ne parvient pas indépendamment de la configuration supplémentaire ajouté à la fin de l' .fichier conf.
Pour vérifier la ligne de configuration est l'utilisation assurez-vous de regarder le fichier journal par défaut pour les messages. Vous pourriez voir quelque chose comme ceci
Il s'avère que cette ligne par défaut est à l'origine du rejet.
essayer de la mettre en commentaire.
Un hack, c'est de modifier pg_hba.conf
Temporairement
À ce stade, vous avez terminé. Pour la sécurité, puis aller et
puis revenir en arrière et de définir pg_hba.conf retour à
Dans mon cas, la solution ici: (pour les personnes concernées)
connexion à postgres:
ce qui concerne
Pour fedora26 et postgres9.6
D'abord, connectez-vous en tant qu'utilisateur root
puis inscrivez-vous pour psql par les commandes suivantes
$su-postgres
tapez $psql
dans psql trouver l'emplacement de hba_file==> signifie pg_hba.conf
postgres=# show hba_file ;
hba_file
/etc/postgresql/9.6/main/pg_hba.conf
(1 ligne)
dans le fichier pg_hba.conf changer d'utilisateur, l'accès à ce
host all all 127.0.0.1/32 md5
J'ai eu le même problème et je l'ai corrigé dans pg_hba.conf lors de la suppression de tous les ident méthodes de même pour IP6 adresse (malgré que j'ai seulement IP4 sur la machine).
J'ai eu le même issuse après avoir suivi ce: Le programme d'installation de PostgreSQL pour les Rails du développement dans Ubuntu 12.04
J'ai essayé les autres réponses, mais tout ce que j'avais à faire était de: "config/database.yml"
Si vous l'utilisez sur CentOS,vous pouvez avoir besoin de recharger postgres après avoir fait les solutions ci-dessus:
postgresql
systemctl status | grep postgres
Cela a fonctionné pour moi :
http://tecadmin.net/fatal-ident-authentication-failed-for-user-postgres/#