Question Erreur PostgreSQL: Fatal: le rôle "nom d'utilisateur" n'existe pas


Je configure mon PostgreSQL 9.1. Je ne peux rien faire avec PostgreSQL: je ne peux pas createdb, 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 root Compte.


497
2017-08-12 03:00


origine


Réponses:


Utilisez le utilisateur du système d'exploitation  postgres pour créer votre base de données - tant que vous n'avez pas mis en place un base de données Rôle avec les privilèges nécessaires correspondant à votre système d'exploitation utilisateur du même nom (h9uest dans ton cas):

sudo -u postgres -i

Comme recommandé ici ou ici.

Ensuite, réessayez. Type exit lorsque vous avez terminé l'opération en tant qu'utilisateur du système postgres.

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

Il s’agit d’utiliser l’utilisateur du système d’exploitation correspondant au rôle de base de données du même nom pour pouvoir accéder via ident authentification. postgres est l'utilisateur par défaut du système d'exploitation à avoir initialisé le cluster de base de données. Le manuel: 

Afin d'amorcer le système de base de données, un initialisé fraîchement   Le système contient toujours un rôle prédéfini. Ce rôle est toujours un   "Superuser", et par défaut (sauf si modifié lors de l'exécution initdb) il   aura le même nom que l'utilisateur du système d'exploitation initialisé   le cluster de base de données. Habituellement, ce rôle sera nommé postgres.   Pour créer plus de rôles, vous devez d'abord vous connecter comme ceci   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 devrez adapter votre stratégie là-bas.

Lisez à propos de rôles de base de données et authentification du client dans le manuel.


569
2017-08-12 04:13



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 courir rake db:create du terminal sous n'importe quel nom de compte que vous avez configuré sans avoir à entrer dans l'environnement postgres.


218
2017-09-09 23:27



sudo su - postgres

psql template1

création de rôle sur pgsql avec privilège 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;

Attribuer 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, de la normale $ Terminal:

ALTER ROLE username WITH LOGIN;

99
2018-05-29 13:35



Installation de postgres en utilisant apt-get ne crée pas de rôle d'utilisateur ou de base de données.

Pour créer un rôle de super-utilisateur et une base de données pour votre compte utilisateur personnel:

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


56
2017-07-18 19:01



Cela fonctionne pour moi:

psql -h localhost -U postgres

45
2017-08-12 11:39



Méthode de travail,

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

  4. Essayez maintenant, psql -U postgres


6
2017-09-10 16:23



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

sudo -u postgres createuser <local username>

Puis entrez le mot de passe pour l'utilisateur local.

Ensuite, entrez la commande précédente qui a généré "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.


4
2018-06-21 20:28



Suivez ces étapes et cela fonctionnera pour vous:

  1. courir msfconsole
  2. type db_console
  3. certaines informations vous seront montrées que vous avez choisi les informations qui vous disent de faire: db_connect user:pass@host:port.../database désolé je ne m'en souviens pas mais il est comme celui-ci alors remplacer l'utilisateur et le mot de passe et l'hôte et la base de données avec les informations incluses dans le 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 mise à niveau après la mise à jour redémarrer le terminal et le déjeuner msfconsole et cela fonctionne, vous pouvez vérifier cela en tapant dans msfconsole: msf>db_status vous verrez que c'est connecté.

1
2017-08-17 10:20



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


1
2018-04-29 02:15



Tout désinstaller et conserver 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


-2
2017-07-05 14:36