Ich habe gerade postgresql installiert und während der Installation das Kennwort x angegeben. Wenn ich versuche createdb
, ein Passwort anzugeben, erhalte ich folgende Meldung:
createdb: Verbindung zur Datenbank konnte nicht hergestellt werden postgres: FATAL: Kennwortauthentifizierung für Benutzer fehlgeschlagen
Gleiches gilt für createuser
.
Wie soll ich anfangen? Kann ich mich als Benutzer zur Datenbank hinzufügen?
linux
database
postgresql
configuration
Rohit Banga
quelle
quelle
postgres
einrichten. Es ist dasSU
von PostgreSQL und es öffnet Sie für Login-Angriffe dagegen. Erstellen Sie einen weiteren Superuser und reservieren Sie die gesperrtenpostgres
für UNIX-Administratoren mit root.Antworten:
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.
Stellen Sie mit dem Benutzer postgres eine Verbindung zur Standarddatenbank her:
Legen Sie das Kennwort für den Benutzer postgres fest und beenden Sie psql (Strg-D):
Bearbeiten Sie die
pg_hba.conf
Datei:und ändern Sie "peer" in "md5" in der Zeile bezüglich postgres:
Um zu erfahren, welche Version von postgresql Sie ausführen, suchen Sie den Versionsordner unter
/etc/postgresql
. Sie können auch Nano oder einen anderen Editor anstelle von VIM verwenden.Starten Sie die Datenbank neu:
(Hier können Sie überprüfen, ob es funktioniert hat
psql -U postgres
).Erstellen Sie einen Benutzer mit demselben Namen wie Sie (um ihn zu finden, können Sie ihn eingeben
whoami
):Die Optionen weisen postgresql an, einen Benutzer zu erstellen, der sich anmelden, Datenbanken erstellen, neue Rollen erstellen kann, ein Superuser ist und über ein verschlüsseltes Kennwort verfügt. Die wirklich wichtigen sind -P -E, damit Sie aufgefordert werden, das zu verschlüsselnde Passwort einzugeben, und -d, damit Sie a ausführen können
createdb
.Vorsicht vor Passwörtern : Sie werden zuerst zweimal nach dem neuen Passwort (für den neuen Benutzer) gefragt, wiederholt und dann einmal nach dem Postgres-Passwort (das in Schritt 2 angegebene).
Bearbeiten Sie erneut die
pg_hba.conf
Datei erneut (siehe Schritt 3 oben) und ändern Sie "Peer" in "md5" in der Zeile "Alle" anderen Benutzer:Starten Sie neu (wie in Schritt 4) und überprüfen Sie, ob Sie sich ohne -U postgres anmelden können:
Beachten Sie, dass dies nur
psql
fehlschlägt, da versucht wird, Sie mit einer Standarddatenbank mit demselben Namen wie Sie (dhwhoami
) zu verbinden. template1 ist die Admin-Datenbank, die von Anfang an hier ist.Jetzt
createdb <dbname>
sollte funktionieren.quelle
pg_hba.conf
die erste Zeile sein, da sie sonst aufgrund anderer Regeln ignoriert werden kann (pgsql 9.3.5 auf F21). Ich habe einige Zeit gebraucht, um herauszufinden, dass das Kommentieren und Ändern bereits auskommentierter Zeilen für postgresql-Benutzer nicht einfach ausreicht.local all all peer
den Punkt 3 habe, zu dem ich jetzt geändert habemd5
. Okay?Unter Linux ist PostgresQL normalerweise so konfiguriert, dass sich der Root-Benutzer über
postgres
die Shell (Konsole oder SSH) als Postgres-Superuser anmelden kann .Dann würden Sie einfach wie gewohnt eine neue Datenbank erstellen:
Dies sollte ohne Berührung funktionieren
pg_hba.conf
. Wenn Sie dies mit einem GUI-Tool über das Netzwerk tun möchten, müssen Sie sich damit anlegenpg_hba.conf
.quelle
psql: FATAL: Peer authentication failed for user "postgres"
sogar mit sudo.psql -d mydatatabase -U myuser
.Das ist meine Lösung:
quelle
sudo bash
.Es gibt zwei Methoden, die Sie verwenden können. Für beide müssen ein Benutzer und eine Datenbank erstellt werden.
Mit createuser und createdb ,
Verwenden der SQL-Verwaltungsbefehle und Herstellen einer Verbindung mit einem Kennwort über TCP
Und dann in der psql-Shell
Dann können Sie sich anmelden,
Wenn Sie den Port nicht kennen, können Sie ihn jederzeit abrufen, indem Sie als
postgres
Benutzer Folgendes ausführen:Oder,
Nebenbemerkung: der
postgres
BenutzerIch schlage vor, den Benutzer NICHT zu ändern
postgres
.postgres
. Sie sollten root haben, um sich als zu authentifizierenpostgres
.postgres
PostgreSQL-Äquivalent zu SQL Server anmelden müssenSA
, dass Sie Schreibzugriff auf die zugrunde liegenden Datendateien haben müssen, . Und das bedeutet, dass Sie normalerweise sowieso Chaos anrichten könnten.quelle
sudo -u postgres createuser -U postgres -d -e -E -l -P -r -s $(whoami)
-s
macht den Benutzer zum Superuser.EDIT: Warnung: Bitte lesen Sie die Antwort von Evan Carroll . Es scheint, dass diese Lösung nicht sicher ist und nicht empfohlen wird.
Dies funktionierte bei mir in der 64-Bit- Standardinstallation von Ubuntu 14.04 .
Ich habe die Anweisungen mit kleinen Änderungen befolgt, die ich unter http://suite.opengeo.org/4.1/dataadmin/pgGettingStarted/firstconnect.html gefunden habe
sudo apt-get install postgresql
sudo –u postgres psql postgres
\password postgres
\q
#Database administrative login by Unix domain socket local all postgres peer
Zu:
#Database administrative login by Unix domain socket local all postgres md5
sudo service postgresql restart
sudo –u postgres createdb mytestdb
psql –U postgres –W
\l
quelle
postgres
Benutzers eine schlechte Idee ist. stackoverflow.com/a/41604969/124486quelle
Sie müssen wahrscheinlich Ihre
pg_hba.conf
Datei aktualisieren . Diese Datei steuert, welche Benutzer sich von welchen IP-Adressen aus anmelden können. Ich denke, dass der Postgres-Benutzer standardmäßig ziemlich gesperrt ist.quelle
/var/lib/pgsql/data/pg_hba.conf
. Wechseln Sieident
zutrust
forhost
(undlocal
wenn Sie ssh verwenden).Wenn Sie wie ich mit macOS arbeiten, haben Sie möglicherweise nicht den Benutzer postgres.
Beim Versuch zu rennen bekam
sudo -u postgres psql
ich den Fehlersudo: unknown user: postgres
Glücklicherweise gibt es ausführbare Dateien, die postgres bereitstellt.
Dann konnte ich
psql
ohne Probleme zugreifen .Wenn Sie eine neue Postgres-Instanz von Grund auf neu erstellen, habe ich folgende Schritte ausgeführt. Ich habe einen nicht standardmäßigen Port verwendet, um zwei Instanzen ausführen zu können.
Dann habe ich
/var/postgres/var-10-local/postgresql.conf
mit meinem bevorzugten Port 5433 bearbeitet .Getan!
quelle
Unter MacOS habe ich die folgenden Schritte ausgeführt, damit es funktioniert.
Holen Sie sich nach der Installation zum ersten Mal den Benutzernamen des Systems.
Nachdem Sie sich beim System angemeldet haben, können Sie die Datenbank erstellen.
quelle
Navigieren Sie einfach zum Verzeichnis Ihrer Installation und führen Sie diese Datei "pg_env.bat" aus. Gehen Sie also zum Ordner bin und führen Sie pgAdmin.exe aus. Das muss ohne Zweifel funktionieren!
quelle