it-swarm.com.de

psql fatale rolle existiert nicht

Ich habe vor kurzem die neueste Version von Ubuntu und bin es noch nicht gewohnt. Ich hatte mehrere Probleme, Postgresql mit Pgadmin3 zu verbinden.

Ich habe versucht, mehreren Tutorials zu folgen, um einen localhost-Server zu erstellen, den ich in pgadmin3 verwenden kann. Ich habe nicht wirklich ins Schwarze getroffen und ich glaube, ich habe es noch schlimmer gemacht, indem ich installierte, deinstallierte, installierte, deinstallierte, versuchte Antworten zu finden, die ich gefunden habe. Es ist möglich, dass ich zwei Postgres installiert habe. Ich bin mir nicht sicher. Ich habe versucht, es zu deinstallieren, hatte jedoch einen Fehler, der besagte, dass Postgres nicht in Sudo war.

Die Sache ist, ich habe jetzt diesen Fehler beim Ausführen von psql in der Konsole:

$psql
psql: FATAL: role "user" does not exist 

Ich kann den pg_hba.conf nicht finden und zu diesem Zeitpunkt habe ich zu viel Angst, die Dinge noch schlimmer zu machen, indem ich versuche, anderen Posts zu folgen. 

Wie kann ich das schaffen?

18
whiplash

Wie in den Kommentaren darauf hingewiesen, scheint Ihre pg_hba.conf in Ordnung zu sein.

Normalerweise wird die Datenbank als Postgres-Benutzer ausgeführt (überprüfen Sie ps aux | grep postgres, um herauszufinden, unter welchem ​​Benutzernamen Postgres ausgeführt wird).

Melden Sie sich als dieser Benutzer an, zum Beispiel Sudo su - postgres, erstellen Sie dann einen Benutzer, der Ihrem normalen Ubuntu-Benutzerkonto (createuser username) entspricht, und erstellen Sie schließlich eine Datenbank mit demselben Namen, und legen Sie den Eigentümer (-O) für diesen Datenbankbenutzer wie folgt fest: createdb -O username username). .

Dadurch sollte psql aufgerufen werden, und pgadmin - sofern Sie es als Standardbenutzer (Benutzername) starten - sollte ebenfalls funktionieren.

Bearbeiten: Standardmäßig verwendet psql Ihren Linux-Benutzernamen als Standardwert sowohl für den Datenbank-Benutzernamen als auch für den Datenbanknamen. Sie können den Benutzernamen mit -U someotherusername überschreiben und eine Verbindung zu einer anderen Datenbank herstellen, indem Sie diesen DB-Namen zur Befehlszeile hinzufügen, z. B. psql someotherdbname. Möglicherweise finden Sie auch psql -l, um die vorhandenen Datenbanken aufzulisten.

42
niko
Sudo -u postgres createuser user

kann Ihnen helfen, einen neuen Benutzer mit allen Berechtigungen von Postgres zu erstellen

8
watsy0007

Verwenden Sie den Postgres-Benutzer:

Sudo su postgres

und dann psql verwenden.

Wenn Sie immer noch Probleme haben, überprüfen Sie diesen Link: PostgreSQL-Fehler: Fatal: Rolle "Benutzername" ist nicht vorhanden

2
Amr Arafat

In Windows 10 funktioniert das gut

pg_restore --format = c --verbose --no-owner --no-privileges --dbname = MYDB --username = postgres --no-password --jobs = 8 F: /MYBK.backup 

--username = (Rolle) und --no-password sind erforderlich

0
Giordhano