Passwort von PostgreSQL unter Ubuntu zurücksetzen [geschlossen]

91

In Ubuntu habe ich die PostgreSQL-Datenbank installiert und einen Superuser für den Server erstellt.

Wenn ich das Passwort des Postgresql-Superusers vergessen habe, wie kann ich es (das Passwort) für diesen Benutzer zurücksetzen?

Ich habe versucht, es zu deinstallieren und dann erneut zu installieren, aber der zuvor erstellte Superuser bleibt erhalten.

Ritesh Mehandiratta
quelle

Antworten:

205

Angenommen, Sie sind der Administrator des Computers, hat Ubuntu Ihnen das Recht eingeräumt, sudo einen beliebigen Befehl als Benutzer auszuführen.
Unter der Annahme, dass Sie die Rechte in der pg_hba.confDatei (im /etc/postgresql/9.1/mainVerzeichnis) nicht eingeschränkt haben , sollte diese Zeile als erste Regel enthalten sein:

# Database administrative login by Unix domain socket  
local   all             postgres                                peer

( 9.1Informationen zum Speicherort der Datei: Dies ist die Hauptversion von Postgres und mainder Name Ihres "Clusters". Sie unterscheidet sich, wenn Sie eine neuere Version von Postgres oder nicht standardmäßige Namen verwendenpg_lsclusters Befehl, um diese Informationen für Ihre Version / Ihr System )

Wenn die pg_hba.confDatei diese Zeile nicht enthält, bearbeiten Sie sie, fügen Sie sie hinzu und laden Sie den Dienst mit neu sudo service postgresql reload.

Dann sollten Sie sich psqlmit diesem Shell-Befehl als Postgres-Superuser anmelden können :

sudo -u postgres psql

Geben Sie in psql den SQL-Befehl ein:

ALTER USER postgres PASSWORD 'newpassword';

In diesem Befehl postgresist der Name eines Superusers. Wenn der Benutzer, dessen Passwort vergessen wurde ritesh, war , wäre der Befehl:

ALTER USER ritesh PASSWORD 'newpassword';

Referenzen: PostgreSQL 9.1.13-Dokumentation, Kapitel 19. Clientauthentifizierung

Denken Sie daran, dass Sie am Ende Postgres mit einem einzelnen S eingeben müssen

Daniel Vérité
quelle
2
Ich habe deine Methode verwendet. Mein Super-Benutzername ist ritesh. Meine pg_hba.conf ist das, was du erwähnt hast. Ich führe den Befehl "ALTER USER postgres PASSWORD 'newpassword' aus." Die Konsole zeigt 'ALTER ROLE' an. Dann habe ich mit Strg + C beendet, nachdem ich einen Befehl erstellt habe. createuser. Es wird angezeigt, um ein Passwort einzugeben. Ich habe ein neues Passwort eingegeben, aber es gibt mir den Fehler "createuser: Konnte keine Verbindung zur Datenbank herstellen postgres: FATAL : Passwortauthentifizierung für Benutzer "ritesh" "fehlgeschlagen. Wie erstelle ich einen Benutzer und was sollte das Passwort für diesen Befehl sein?
Ritesh Mehandiratta
Wenn Sie das Passwort für riteshändern möchten , ändern Sie die SQL oben inALTER USER ritesh PASSWORD 'newpassword'
Daniel Vérité
Sie sollten postgres nach der Änderung pg_hba.conf neu starten ....
Mahdi
1
Kein Neustart erforderlich, verwenden Sie einfach pg_ctl reload.
hbn