Erreur PostgreSQL: Fatal: le rôle “username” n’existe pas

Je configure mon PostgreSQL 9.1. Je ne peux rien faire avec PostgreSQL: ne peut pas createuser , ne peut pas createuser ; toutes les opérations renvoient 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.
Une erreur similaire persiste pour le compte root .

Utilisez l’utilisateur du système d’exploitation postgres pour créer votre firebase database – à condition que vous n’ayez pas défini de rôle de firebase database avec les privilèges nécessaires correspondant à l’utilisateur du même système d’exploitation ( h9uest dans votre cas):

 sudo -u postgres -i 

Comme recommandé ici ou ici .

Puis réessayez. Tapez exit lorsque vous avez terminé en tant qu’utilisateur système postgres .

Ou exécutez la commande unique createuser tant que postgres avec sudo , comme démontré par drees dans une autre réponse.

Le but est d’utiliser l’utilisateur du système d’exploitation correspondant au rôle de firebase database du même nom pour obtenir l’access via l’ authentification par ident . postgres est l’utilisateur du système d’exploitation par défaut pour avoir initialisé le cluster de firebase database. Le manuel:

Pour amorcer le système de firebase database, un système nouvellement initialisé contient toujours un rôle prédéfini. Ce rôle est toujours un «superutilisateur» et, par défaut (à moins qu’il ne soit modifié lors de l’exécution d’ initdb ), il porte le même nom que l’utilisateur du système d’exploitation qui a initialisé le cluster de firebase database. Habituellement, ce rôle sera nommé postgres . Pour créer plus de rôles, vous devez d’abord vous connecter en tant que rôle initial.

J’ai entendu parler de configurations étranges avec des noms d’utilisateur non standard ou lorsque l’utilisateur du système d’exploitation n’existe pas. Vous devez adapter votre stratégie là-bas.

En savoir plus sur les rôles de firebase database et l’authentification du client dans le manuel.

Après avoir essayé de nombreuses autres solutions, et sans succès, cette réponse m’a finalement aidé.

https://stackoverflow.com/a/16974197/2433309

En bref, courir

 sudo -u postgres createuser owning_user 

crée un rôle avec le nom owning_user (dans ce cas, h9uest). Après cela, vous pouvez lancer rake db:create depuis le terminal sous le nom de compte que vous avez configuré sans avoir à entrer dans l’environnement postgres.

 sudo su - postgres psql template1 

créer un rôle sur pgsql avec des privilèges en tant que “superutilisateur”

 CREATE ROLE username superuser; eg. CREATE ROLE demo superuser; 

Ensuite, créez un utilisateur

 CREATE USER username; eg. CREATE USER demo; 

Atsortingbuer un privilège à l’utilisateur

 GRANT ROOT TO username; 

Et puis activez la connexion de cet utilisateur, vous pouvez donc exécuter par exemple: psql template1 , à partir du terminal $ normal:

 ALTER ROLE username WITH LOGIN; 

L’installation de postgres en utilisant apt-get ne crée pas de rôle d’utilisateur ou de firebase database.

Pour créer un rôle de superutilisateur et une firebase database pour votre compte d’utilisateur personnel:

sudo -u postgres createuser -s $(whoami); createdb $(whoami)

Cela fonctionne pour moi:

 psql -h localhost -U postgres 

Méthode de travail,

  1. vi /etc/postgresql/9.3/main/pg_hba.conf
  2. local all postgres peer ici changent en confiance
  3. redémarrer, sudo service postgresql restart

  4. maintenant essayez, psql -U postgres

À l’invite de l’utilisateur local, pas à l’invite de l’utilisateur root, tapez

 sudo -u postgres createuser  

Ensuite, entrez le mot de passe pour l’utilisateur local.

Ensuite, entrez la commande précédente qui a généré le “nom d’utilisateur” rôle “n’existe pas.”

Les étapes ci-dessus ont résolu le problème pour moi. Sinon, veuillez envoyer les messages du terminal pour les étapes ci-dessus.

Je l’ai installé sur macOS et j’ai dû:

 cd /Applications/Postgres.app/Contents/Versions/9.5/bin createuser -U postgres -s YOURUSERNAME createdb YOURUSERNAME 

Voici la source: https://github.com/PostgresApp/PostgresApp/issues/313#issuecomment-192461641

Suivez ces étapes et cela fonctionnera pour vous:

  1. lance msfconsole
  2. tapez db_console
  3. des informations vous seront montrées en choisissant les informations qui vous disent: db_connect user:pass@host:port.../database désolé je ne m’en souviens pas mais c’est comme celui-ci alors remplacez l’utilisateur et le mot de passe et le host et la firebase database avec les informations incluses dans database.yml dans l’emplacement: /usr/share/metasploit-framework/config
  4. tu verras. reconstruire le cache du modèle en arrière-plan.
  5. Tapez apt-get update && apt-get upgrade après le redémarrage du terminal et du déjeuner msfconsole et cela fonctionne, vous pouvez le vérifier en tapant msfconsole: msf>db_status vous verrez qu’il est connecté.

Initialiser manuellement la firebase database de démarrage a résolu, dans mon cas.

L’exécution d’ initdb fait l’affaire pour moi.

Pour une raison quelconque, lorsque j’ai installé postgres, la “firebase database initiale” n’a pas été créée.

Pour résoudre le problème, voici la solution fournie pour le wiki postgreSQL – Premiers pas .

initdb

Généralement, l’installation de postgres sur votre système d’exploitation crée une “firebase database initiale” et lance le démon du serveur postgres en cours d’exécution. Sinon, vous devrez lancer initdb

Tout désinstaller et garder Postgres.app:

 brew cask uninstall postgres brew uninstall postgres brew cask install postgres rm -rf /Applications/Postgres93.app/ # shutdown any postgres instance # open postgres.app -> "Initialize" 

Je voulais PostgreSQL 9.6