Createuser: impossible de se connecter à la firebase database postgres: FATAL: le rôle «tom» n’existe pas

J’essaie de configurer Postgres pour la première fois et je dois créer un utilisateur avec des permissions pour lire et créer des bases de données. Cependant, lorsque j’utilise “nom d’utilisateur createuser” dans mon terminal, j’obtiens le message suivant:

createuser: impossible de se connecter à la firebase database postgres: FATAL: le rôle “tom” n’existe pas

Tom est mon compte utilisateur Ubuntu auquel je suis connecté en ce moment. J’essaie de créer un nom d’utilisateur “postgres”, puis de faire un psql -U psql template1 pour pouvoir créer une firebase database et lui affecter un propriétaire pour mon application Rails.

De l’aide?

Vous avez mentionné Ubuntu, donc je suppose que vous avez installé les paquets PostgreSQL d’Ubuntu via apt.

Si tel est le cas, le compte utilisateur PostgreSQL PostgreSQL existe déjà et est configuré pour être accessible via peer authentification peer pour les sockets Unix dans pg_hba.conf . Vous y parvenez en exécutant des commandes en tant qu’utilisateur unix postgres , par exemple:

 sudo -u postgres createuser owning_user sudo -u postgres createdb -O owning_user dbname 

Ceci est tout dans la documentation Ubuntu PostgreSQL qui est le premier hit de Google pour “Ubuntu PostgreSQL” et est couvert par de nombreuses questions sur le débordement de stack.

(Vous avez rendu cette question plus difficile à répondre en omettant des détails tels que le système d’exploitation et la version que vous utilisez, comment vous avez installé PostgreSQL ™, etc.)

Voir git gist avec des instructions ici

Lance ça:

  sudo -u postgres psql 

OU

 psql -U postgres 

dans votre terminal pour entrer dans postgres

 postgres=# 

Courir

 CREATE USER new_username; 

Remarque: Remplacez new_username par l’utilisateur que vous souhaitez créer, dans votre cas, ce sera tom.

 postgres=# CREATE USER new_username; CREATE ROLE 

Puisque vous voulez que cet utilisateur puisse créer une firebase database, vous devez modifier le rôle en superutilisateur.

 postgres=# ALTER USER new_username SUPERUSER CREATEDB; ALTER ROLE 

Pour confirmer, tout a réussi,

 postgres=# \du List of roles Role name | Atsortingbutes | Member of -----------+------------------------------------------------+----------- new_username | Superuser, Create DB | {} postgres | Superuser, Create role, Create DB, Replication | {} root | Superuser, Create role, Create DB | {} postgres=# 

Mise à jour / Modification:

J’ai récemment rencontré une erreur similaire sur mon Mac:

psql: FATAL: role "postgres" does not exist

Cela était dû au fait que mon installation était configurée avec un super-utilisateur de firebase database dont le nom de rôle était le même que votre nom de connexion (abrégé).

Mais certains scripts Linux supposent que le super-utilisateur a le nom de rôle traditionnel de postgres

Comment ai-je résolu ce problème?

Si vous avez installé avec homebrew exécuter:

/usr/local/Cellar/postgresql/10.5/bin/createuser -s postgres

OU:

/usr/local/Cellar/postgresql/10.5/bin/createuser -s new_username

Si vous avez installé avec postgres.app pour Mac, exécutez:

/Applications/Postgres.app/Contents/Versions/10.5/bin/createuser -s postgres

PS: remplacez 10.5 par votre version de PostgreSQL

 sudo -u postgres createuser -s tom 

Cela devrait vous aider car cela se produira si l’administrateur n’a pas créé de compte utilisateur PostgreSQL pour vous. Il se peut également que vous ayez reçu un nom d’utilisateur PostgreSQL différent de votre nom d’utilisateur du système d’exploitation. Dans ce cas, vous devez utiliser le commutateur -U.

Votre erreur est affichée dans la documentation officielle. Vous pouvez lire cet article .

J’ai copié la raison pour vous (et créé un lien hypertexte avec les URL) de cet article:

Cela se produira si l’administrateur n’a pas créé de compte utilisateur PostgreSQL pour vous. (Les comptes utilisateurs PostgreSQL sont distincts des comptes utilisateur du système d’exploitation.) Si vous êtes l’administrateur, reportez-vous au chapitre 20 pour obtenir de l’aide sur la création de comptes. Vous devrez devenir l’utilisateur du système d’exploitation sous lequel PostgreSQL a été installé (généralement postgres) pour créer le premier compte d’utilisateur. Il se peut également que vous ayez reçu un nom d’utilisateur PostgreSQL différent de votre nom d’utilisateur du système d’exploitation; dans ce cas, vous devez utiliser le commutateur -U ou définir la variable d’environnement PGUSER pour spécifier votre nom d’utilisateur PostgreSQL

Pour vos besoins, vous pouvez faire:

1) Créez un compte utilisateur PostgreSQL:

 sudo -u postgres createuser tom -d -P 

(l’option -P pour définir un mot de passe; l’option -d pour permettre la création d’une firebase database pour votre nom d’utilisateur “tom”. Notez que “tom” est le nom d’utilisateur de votre système d’exploitation. )

2) Vous devriez maintenant être capable d’exécuter createdb et d’autres commandes PostgreSQL.

1- Connectez-vous en tant qu’utilisateur PostgreSQL par défaut (postgres)

 sudo -u postgres -i 

2- comme utilisateur postgres. Ajouter un nouvel utilisateur de firebase database à l’aide de la commande createuser

 [postgres]$ createuser --interactive 

3-sortie

 [postgres]$ exit 

J’ai eu le même problème, je viens de le faire

sudo su – postgres

createuser odoo -U postgres -dRSP #P pour le mot de passe ( odoo ou nom d’utilisateur que vous voulez donner à l’access postgres)

Vous devez d’abord lancer initdb. Il va créer le cluster de firebase database et la configuration initiale

Voir Comment configurer postgresql pour la première fois? et http://www.postgresql.org/docs/8.4/static/app-initdb.html