Ich habe gerade Postgres installiert und habe 1-2 Stunden lang daran und an verschiedenen Konfigurationen herumgebastelt.
Ich bin fest davon überzeugt, dass ich nicht zum Postgres-Benutzer wechseln kann
$ su - postgres
ergibt folgenden Fehler: su: unknown login: postgres
$ sudo -u postgres psql
ergibt folgenden Fehler: sudo: unknown user: postgres
Diese Versuche werden als normaler Benutzer durchgeführt. Wenn Sie sie als Root versuchen, erhalten Sie genau die gleichen Ergebnisse. Ich habe Postgres über Homebrew unter OS X installiert und die Anweisungen mehrmals gelesen.
macos
postgresql
krystah
quelle
quelle
postgres
Benutzer laufen .postgres_
stattdessen so erstellt. Beachten Sie den nachfolgenden Unterstrich. Sind Sie auch sicher, dass Sie (oder das Installationsprogramm) die PostgreSQL-Instanz tatsächlich erstellt und die Datenbank gestartet haben?postgres
Benutzer wechseln . Das Problem wurde nach der Installation despostgresql-server
Pakets behoben .Antworten:
psql
: Meldet mich mit meinem Standardbenutzernamen anpsql -U postgres
: Meldet mich als Postgres-Benutzer anSudo scheint für mich nicht erforderlich zu sein.
Ich verwende Postgres.app für meine OS X-Postgres-Datenbank. Es hat die Kopfschmerzen beseitigt, sicherzustellen, dass die Installation funktioniert und der Datenbankserver ordnungsgemäß gestartet wurde. Überprüfen Sie es hier: http://postgresapp.com
Bearbeiten: Dank an @Erwin Brandstetter für die Korrektur meiner Verwendung der Argumente.
quelle
psql postgres
undpsql -d postgres
.Durch die
psql --help
, wenn Sie Optionen für den Datenbanknamen nicht festgelegt haben (ohne-d
Option) wäre es Ihr Benutzername sein, wenn Sie nicht tun-U
, würden die Datenbank - Benutzername Ihre Benutzername sein, usw.Mit
initdb
dem Befehl (um die erste Datenbank zu erstellen) wird Ihr Benutzername jedoch nicht als Datenbankname angegeben. Es hat eine Datenbank mit dem Namenpostgres
. Die erste Datenbank wird immer mit dem Befehl initdb erstellt, wenn der Datenspeicherbereich initialisiert wird. Diese Datenbank heißt postgres.Wenn Sie also keine andere Datenbank mit Ihrem Benutzernamen haben, müssen Sie dies tun,
psql -d postgres
damit der Befehl psql funktioniert. Und es scheint, dass es-d
standardmäßig eine Option gibt ,psql postgres
funktioniert auch.Wenn Sie andere Datenbanknamen erstellt haben, die mit Ihrem Benutzernamen identisch sind (dies sollte erledigt sein
createdb
), können Siepsql
nur Befehle erteilen. Und es scheint, dass der erste Datenbankbenutzername durch Brauen als Benutzername Ihres Computers festgelegt wird.oder,
würde standardmäßig funktionieren.
quelle
OS X neigt dazu, den Systemkontonamen "_" voranzustellen. Sie sagen nicht, welche Version von OS X Sie verwenden, aber zumindest in 10.8 und 10.9 ist der Benutzer _postgres in einer Standardinstallation vorhanden. Beachten Sie, dass Sie
su
dieses Konto nicht verwenden können (außer als Root), da es kein Kennwort hat.sudo -u _postgres
sollte andererseits gut funktionieren.quelle
Die Diskussion und Antwort hier war sehr hilfreich für mich:
psql: FATAL: Datenbank "<Benutzer>" existiert nicht
quelle
Funktionierte gut für mich im Fall von Datenbankname: postgres & Benutzername: postgres. Sie müssen also kein Sudo schreiben.
Und im Fall einer anderen Datenbank können Sie es versuchen
Wie in der Postgres-Hilfe angegeben:
quelle
$ psql -U postgres
Erzeugt eine Ausgabepsql: FATAL: role "postgres" does not exist
,psql postgres
funktioniert aber .Ich bekomme genau die gleichen Fehler wie kryshah mit
su - postgres
undsudo -u postgres psql
. Die Antwort von DanielM gibt auch Fehler.Gibt bei falschen Einstellungen aus
Antworte jedoch aus przbabus Kommentar.
Ich denke, der Teil dieses Problems liegt möglicherweise in den Eigentümereinstellungen in OSX
aber tun
sudo chown -R postgres:staff /Users/postgres
gibtchown: invalid user: ‘postgres:staff’
.Kurz gesagt, dies ist nicht die Lösung des Problems. Verwenden Sie die von der Postgres-Installation bereitgestellten Tools, um einen Benutzer und eine Datenbank zu erstellen.
Um die richtigen Einstellungen und Ausgaben zu erhalten
Nach der Postgres-Installation gibt es bestimmte Befehle, um dem Datenbanksystem einen neuen Benutzer hinzuzufügen. Führen Sie nach initdb Folgendes aus, wie hier beschrieben
Um die Kennwortanforderung ständig zu vermeiden, haben Sie drei Möglichkeiten, wie hier beschrieben .
quelle
Für mich war dies die Lösung unter macOS. Installieren Sie die psql neu
Starten Sie den PostgreSQL-Server
DB initialisieren
Wenn dieser Befehl einen Fehler auslöst, rm die alte Datenbankdatei und führen Sie den obigen Befehl erneut aus
Erstellen Sie eine neue Datenbank
Sie werden in dieser Datenbank angemeldet und können hier einen Benutzer zum Anmelden erstellen
quelle
Die Lösung ist einfach:
Melden Sie sich als root an
und danach:
quelle