986 Stimmen

Psql: FATAL: Die Datenbank "<user>" existiert nicht

Ich verwende die PostgreSql-App für Mac (http://postgresapp.com/). Ich habe es in der Vergangenheit auf anderen Maschinen verwendet, aber bei der Installation auf meinem Macbook treten einige Probleme auf. Ich habe die Anwendung installiert und ausgeführt:

psql -h localhost

Es gibt zurück:

psql: FATAL: Datenbank "" existiert nicht

Es scheint, dass ich nicht einmal die Konsole ausführen kann, um die Datenbank zu erstellen, die sie zu finden versucht. Das Gleiche passiert, wenn ich einfach ausführe:

psql 

oder wenn ich psql aus dem Anwendungsmenü starte:

Rechnerstatistiken:

  • OSX 10.8.4

  • psql (PostgreSQL) 9.2.4

Jede Hilfe ist willkommen.

Ich habe auch versucht, PostgreSql über Homebrew zu installieren und habe das gleiche Problem. Ich habe auch die Dokumentationsseite der Anwendung gelesen, die besagt:

Wenn Postgres.app zum ersten Mal gestartet wird, erstellt es die $USER-Datenbank, die die Standarddatenbank für psql ist, wenn keine angegeben ist. Der Standardbenutzer ist $USER, ohne Passwort.

Es scheint also, dass die Anwendung $USER nicht erstellt, jedoch habe ich es jetzt mehrmals installiert->deinstalliert->neu installiert, also muss es etwas mit meinem Rechner zu tun haben.

Ich habe die Antwort gefunden, bin mir aber nicht sicher, wie genau es funktioniert, da der Benutzer, der in diesem Thread geantwortet hat -> Getting Postgresql Running In Mac: Database "postgres" does not exist nicht weitergemacht hat. Ich habe den folgenden Befehl verwendet, um psql zu öffnen:

psql -d template1

Ich lasse diese Frage unbeantwortet, bis jemand eine Erklärung dafür liefern kann, warum dies funktioniert.

-1voto

Rithik Singh Punkte 115

Ich habe PostgreSQL in Docker ausgeführt. In der Befehlszeile habe ich den Fehler "Rolle 'root' existiert nicht" bekommen.

su - postgres

psql

hat das Problem gelöst.

PostgreSQL hat seinen eigenen Benutzer auf dem System, der beim Installieren von PostgreSQL erstellt wird. Der Benutzer postgres kann sich bei PostgreSQL anmelden, ohne ein Passwort zu verwenden. Kein anderer Benutzer kann sich bei PostgreSQL anmelden.

Dies bedeutet, dass Sie vor der Verwendung von PostgreSQL zu diesem Benutzerkonto wechseln müssen mit dem Befehl:

su - postgres Dann können Sie sich beim PostgreSQL-Client anmelden mit dem Befehl:

psql Sie haben keinen Zugriff auf die Datenbank von der Befehlszeile aus als ein anderer Benutzer.

-3voto

matw50 Punkte 1

Ich hatte immer noch das oben genannte Problem, nachdem ich postgresql mit homebrew installiert hatte - ich habe es gelöst, indem ich /usr/local/bin in meinen Pfad vor /usr/bin gesetzt habe

-22voto

John Doe Punkte 199

Dies ist ein grundlegendes Missverständnis. Einfaches Eintippen:

pgres

wird diese Antwort ergeben:

pgres  

Es wird ohne Fehler erfolgreich sein, wenn der Benutzer die Berechtigungen zum Zugriff auf die Datenbank hat.

Man kann sich auf die Details der exportierten Umgebungsvariablen einlassen, aber das ist unnötig.. dies ist zu grundlegend, um aus einem anderen Grund zu scheitern.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X