PostgreSQL erreur: Fatal: le rôle du “nom d'utilisateur” n'existe pas
Je suis dans mon PostgreSQL 9.1. Je ne peux pas faire n'importe quoi avec PostgreSQL: ne peut pas createdb
, ne peut pas createuser
; toutes les opérations de retourner le message d'erreur
Fatal: role h9uest does not exist
h9uest
est le nom de mon compte, et je sudo apt-get install
PostgreSQL 9.1 sous ce compte.
Semblable erreur persiste pour la root
compte.
- Ensuite, vous pouvez exécuter dans
FATAL: role "user" is not permitted to log in
, consultez dba.stackexchange.com/questions/57723/... pour cela. - J'ai répondu à cette question ici. Lire ce tutoriel trop "Comment Installer Postgres pour Ubuntu Linux".
- le tutoriel lien était exactement ce dont j'avais besoin! Très clair et très simple
- psql -h localhost -U postgres
- toute solution pour windows?
- Si vous obtenez le message d'erreur
role doesn't exist
ET l'erreurcan't create role, it already exists
découvrez cette réponse: stackoverflow.com/a/56658832/1689770
Vous devez vous connecter pour publier un commentaire.
Utiliser le utilisateur du système d'exploitation
postgres
pour créer votre base de données tant que vous n'avez pas configuré un base de données rôle avec les privilèges nécessaires qui correspond à votre système d'exploitation de l'utilisateur du même nom (h9uest
dans votre cas):Comme recommandé ici ou ici.
Puis essayez à nouveau. Type
exit
lorsque vous avez terminé d'exploitation que l'utilisateur du systèmepostgres
.Ou exécuter la commande unique
createuser
commepostgres
avecsudo
, comme démontré par la drees dans une autre réponse.Le point est d'utiliser le système d'exploitation de l'utilisateur correspondant à la base de données de rôle du même nom pour avoir accès via
ident
authentification.postgres
est le système d'exploitation par défaut de l'utilisateur à avoir initialisé le cluster de base de données. Le manuel de:J'ai entendu parler de l'étrange configurations non standard des noms d'utilisateur ou lorsque le système d'exploitation de l'utilisateur n'existe pas. Vous devez adapter votre stratégie.
Lire sur rôles de base de données et l'authentification du client dans le manuel.
sudo etc
en tant qu'utilisateur postgres... Comment installer un programme? Voir ce S2geometry problème d'installation.Après avoir essayé de nombreux autres peuples des solutions, et sans succès, cette réponse finalement m'a aidé.
https://stackoverflow.com/a/16974197/2433309
En bref, l'exécution de
crée un rôle avec le nom owning_user (dans ce cas, h9uest). Après cela, vous pouvez exécuter
rake db:create
à partir du terminal, sous quelque nom du compte que vous mis en place sans avoir à entrer dans la postgres environnement.sudo: unknown user: postgres
-s
, et n'a pas besoin d'utilisersudo -u postgres
(justecreateuser new_user
a bien fonctionné)psql: FATAL: role "jonny" does not exist
bon alorssudo -u postgres -s createuser jonny
alors pourquoicreateuser: creation of new role failed: ERROR: role "jonny" already exists
la création de rôle sur pgsql avec privilège en tant que "super-utilisateur"
Puis créer un utilisateur
Attribuer des privilèges à l'utilisateur
Puis activer la connexion de l'utilisateur, de sorte que vous pouvez exécuter par exemple:
psql template1
, de normal$
terminal:CREATE ROLE username superuser createdb login;
qui regroupe l'ensemble des trois étapes...sudo -u postgres createuser --superuser $USER; sudo -u postgres createdb $USER
L'installation de postgres à l'aide de
apt-get
ne crée pas de rôle de l'utilisateur ou d'une base de données.Pour créer un super-utilisateur rôle et une base de données pour votre compte d'utilisateur personnel:
sudo -u postgres createuser -s $(whoami); createdb $(whoami)
sudo -u postgres createdb $(whoami)
-s
drapeau dans la première commande), vous pouvez créer la base de données que vous-même. Vous n'aurez pas besoin de courircreatedb
commepostgres
.Cela fonctionne pour moi:
postgres
(testé sur Linux et Windows).Méthode de travail,
vi /etc/postgresql/9.3/main/pg_hba.conf
local all postgres peer
ici changer par les pairs à confiance
redémarrer,
sudo service postgresql restart
essayez maintenant,
psql -U postgres
trust
méthode est recommandée uniquement dans un environnement totalement sécurisé. Alors que l'accès de connexions non fiables est possible, jamais exposer votre base de données de cluster comme ça.Je l'ai installé sur macOS et dû:
Voici la source: https://github.com/PostgresApp/PostgresApp/issues/313#issuecomment-192461641
Dans les locaux de l'utilisateur invite pas l'utilisateur root invite de commandes, tapez
Puis entrez le mot de passe pour les utilisateurs locaux.
Puis entrez la commande précédente qui a généré "rôle" nom d'utilisateur " n'existe pas."
Étapes ci-dessus ont résolu le problème pour moi.
Si non, veuillez envoyer terminal de messages pour les étapes ci-dessus.
Pour la version Postgres 9.5 utiliser à la suite de comand:
Espère que cela aidera.
Création manuelle d'une base de données de cluster résolu dans mon cas.
Pour quelque raison, quand j'ai installé postgres, "les premiers DB" n'a pas été créée. L'exécution de
initdb
a fait le tour pour moi.Cette solution est proposée dans PostgreSQL Wiki - Premières étapes:
initdb: command not found
Suivez Ces Étapes et il Va Travailler Pour Vous :
msfconsole
db_connect user:pass@host:port.../database
désolé, je ne m'en souviens pas mais c'est comme ça alors remplacer l'utilisateur et le mot de passe de l'hôte et de la base de données avec les informations incluses dans ledatabase.yml
dans la mise en place:/usr/share/metasploit-framework/config
msfconsole: msf>db_status
vous verrez qu'il est connecté.psql postgres
résultats:psql: FATAL: role "root" does not exist
Pour Windows utilisateurs :
psql -U postgres
Vous devriez voir l'interface de ligne de commande pour PostgreSQL:
postgres=#
Désinstallation de tout et de maintien de Postgres.app:
Je voulais PostgreSQL 9.6