Vous n'êtes pas identifié(e).
Bonjour à tous,
Je rencontre un très gros problème avec Postgresql sur Fedora.
J'ai installé : yum -y install postgresql-server postgresql-devel
gem install pg.
L'installation s'est bien passée mais j'ai rencontré des problèmes et j'ai décidé de réinstallé.
Le problème est que pensant "purger" pour pouvoir réinstaller comme il faut j'ai supprimé dans le home le dossier postgres (avec rm -r).
Je suis bloqué maintenant, a chaque fois que je tente de créer une base j'ai un mot de passe qui m'est demandé mais je ne le connais pas !
[root@localhost ~]# createuser postgres
Le nouveau rôle est-il super-utilisateur ? (o/n) o
Mot de passe :
createuser : n'a pas pu se connecter à la base de données postgres : FATAL: authentification par mot de passe échouée pour l'utilisateur « root »
[root@localhost ~]# createuser postgres
Le nouveau rôle est-il super-utilisateur ? (o/n) n
Le nouveau rôle est-il autorisé à créer des bases de données ? (o/n) o
Le nouveau rôle est-il autorisé à créer de nouveaux rôles ? (o/n) n
Mot de passe :
createuser : n'a pas pu se connecter à la base de données postgres : FATAL: authentification par mot de passe échouée pour l'utilisateur « root »
Et à la place de voir postgres@utilisateur je vois bash -4.2.
Que puis-je faire ??
Merci bien
Hors ligne
createuser se connecte par défaut à la base de données postgres pour exécuter l'ordre SQL "CREATE USER". Comme vous n'avez pas utilisé l'option -U pour spécifier l'utilisateur PostgreSQL pour la connexion à la base, il va regarder si un utilisateur est indiqué dans la variable d'environnement PGUSER. Comme cette variable n'existe pas, il utilise par défaut le compte Unix que vous utlisez pour exécuter la commande. D'où le fait qu'il essaie de se connecter en tant qu'utilisateur root.
Mais de toute façon, vous ne connaissez pas le mot de passe. Et pour cause, après installation, aucun mot de passe n'est défini.
Vous avez donc deux solutions :
* commencez par vous connecter en tant qu'utilisateur postgres (au niveau Unix, donc un simple "su - postgres" devrait suffire). Puis essayez le createuser. Si cela ne marche toujours pas car il continue à vous demander un mot de passe, alors vous devez changer la configuration d'accès aux bases. Il s'agit du fichier pg_hba.conf, situé normalement dans le répertoire des données de PostgreSQL. Vous devez changer la méthode d'authentification actuelle (à priori md5, voire password) par trust.
Guillaume.
Hors ligne
Merci pour votre prompte réponse.
Quand je fais su - postgres j'obtiens non pas postgres@localhost comme cela devrait être mais bash -4.2.
En plus lors que je lance là commande il me demande le mot de passe (c'est la première fois que cela me le fais) !
En ce qui concerne le fichier pg_hba.conf, par défaut la valeur était mise sur ident. J'avais essayé de mettre trust ou md5 mais cela n'a rien changé
Hors ligne
Concernant le "bash-4.2", cela n'a rien à voir avec PostgreSQL mais avec la configuration shell du compte postgres.
pour la configuration de l'authentification, elle ne doit pas être sur ident si PostgreSQL vous demande un mot de passe. Êtes-vous sûr d'avoir modifié le bon fichier ? De plus, avez-vous demandé à PostgreSQL de recharger la configuration ? car modifier le pg_hba.conf, sans faire de reload, ça ne sert à rien.
Guillaume.
Hors ligne
Normalement j'ai modifié le bon fichier.
Il est vrai que j'ai eu une demande de mot de passe après avoir modifié ident.
Et non je ne crois pas avoir faire le reload ... cette partie n'était pas précisée là où j'ai cherché.
Hors ligne
Il faut toujours faire un reload après la modification d'un fichier de configuration PostgreSQL. Dans certains cas, il faut même faire un restart mais ils sont rares.
Guillaume.
Hors ligne
Bonjour Gleu,
J'ai trouvé le temps de lire la documentation pour le reload et l'ai fais.
Et cela fonctionne !
Merci beaucoup pour votre aide
Sincères salutations
Hors ligne