Die anderen Antworten waren für mich nicht ganz zufriedenstellend. Hier ist, was für postgresql-9.1 auf Xubuntu 12.04.1 LTS funktioniert hat.
-
Verbinden Sie sich mit der Standarddatenbank mit dem Benutzer postgres:
sudo -u postgres psql-Vorlage1
-
Legen Sie das Passwort für den Benutzer postgres fest und beenden Sie dann psql (Strg-D):
ALTER USER Postgres mit verschlüsseltem Passwort „xxxxxxx“;
-
Bearbeiten Sie die
pg_hba.conf
Datei:sudo vim /etc/postgresql/9.1/main/pg_hba.conf
und ändern Sie "peer" in "md5" in der Zeile bezüglich postgres:
lokal alle postgres
Peermd5Um zu erfahren, welche Version von postgresql Sie ausführen, suchen Sie nach dem Versionsordner unter
/etc/postgresql
. Sie können auch Nano oder einen anderen Editor anstelle von VIM verwenden. -
Starten Sie die Datenbank neu :
sudo /etc/init.d/postgresql neu starten
(Hier können Sie überprüfen, ob es mit
psql -U postgres
funktioniert hat ). -
Erstellen Sie einen Benutzer mit demselben Namen wie Sie (um ihn zu finden, können Sie
whoami
eingeben ):sudo createuser -U postgres -d -e -E -l -P -r -s
<my_name>
Die Optionen weisen postgresql an, einen Benutzer zu erstellen, der sich anmelden, Datenbanken erstellen, neue Rollen erstellen kann, ein Superuser ist und ein verschlüsseltes Passwort hat. Die wirklich wichtigen sind -P -E, damit Sie aufgefordert werden, das zu verschlüsselnde Passwort einzugeben, und -d, damit Sie eine
createdb
erstellen können .Achten Sie auf Passwörter :Es wird Sie zuerst zweimal nach dem neuen Passwort (für den neuen Benutzer) fragen, wiederholt, und dann einmal nach dem Postgres-Passwort (das in Schritt 2 angegebene).
-
Bearbeiten Sie erneut die
pg_hba.conf
Datei (siehe Schritt 3 oben) und ändern Sie "peer" in "md5" in der Zeile, die "alle" anderen Benutzer betrifft:lokal alle alle
Peermd5 -
Starten Sie neu (wie in Schritt 4) und prüfen Sie, ob Sie sich ohne -U postgres:
anmelden könnenpsql-Vorlage1
Beachten Sie, dass, wenn Sie nur
psql
ausführen , wird es fehlschlagen, da es versuchen wird, Sie mit einer Standarddatenbank zu verbinden, die denselben Namen wie Sie hat (z. B.whoami
). template1 ist die Admin-Datenbank, die von Anfang an dabei ist. -
Jetzt
createdb <dbname>
sollte funktionieren.