PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

PostgreSQL-Fehler:Schwerwiegend:Benutzername der Rolle existiert nicht

Verwenden Sie den Betriebssystembenutzer postgres um Ihre Datenbank zu erstellen - solange Sie noch keine Datenbank eingerichtet haben Rolle mit den erforderlichen Rechten, die Ihrem gleichnamigen Betriebssystembenutzer entspricht (h9uest in Ihrem Fall):

sudo -u postgres -i

Wie hier oder hier empfohlen.

Dann versuchen Sie es erneut. Geben Sie exit ein wenn Sie mit dem Betrieb als Systembenutzer postgres fertig sind .

Oder Führen Sie den einzelnen Befehl createuser aus als postgres mit sudo , wie von drees in einer anderen Antwort gezeigt.

Es geht darum, dem Betriebssystembenutzer, der der gleichnamigen Datenbankrolle entspricht, den Zugriff über ident zu gewähren Authentifizierung . postgres ist der Standardbenutzer des Betriebssystems, der den Datenbankcluster initialisiert hat. Das Handbuch:

Um das Datenbanksystem zu booten, enthält ein frisch initialisiertes System immer eine vordefinierte Rolle. Diese Rolle ist immer ein „Superuser“ und standardmäßig (sofern nicht beim Ausführen von initdb geändert ) Es hat denselben Namen wie der Betriebssystembenutzer, der den Datenbankcluster initialisiert hat. Üblicherweise wird diese Rolle postgres genannt .Um weitere Rollen zu erstellen, müssen Sie sich zuerst als diese initiale Rolle verbinden.

Ich habe von seltsamen Setups mit nicht standardmäßigen Benutzernamen gehört oder wo der Betriebssystembenutzer nicht existiert. Da müssten Sie Ihre Strategie anpassen.

Lesen Sie mehr über Datenbankrollen und Client-Authentifizierung im Handbuch.