Ich richte mein PostgreSQL 9.1 ein. Ich kann mit PostgreSQL nichts anfangen: kann nicht createdb
, kann nicht createuser
; Alle Operationen geben die Fehlermeldung zurück
Fatal: role h9uest does not exist
h9uest
ist mein Kontoname und ich sudo apt-get install
PostgreSQL 9.1 unter diesem Konto.
Ein ähnlicher Fehler bleibt für das root
Konto bestehen.
postgresql
authentication
h9uest
quelle
quelle
FATAL: role "user" is not permitted to log in
, überprüfen dba.stackexchange.com/questions/57723/... dafür.role doesn't exist
und den Fehler erhalten,can't create role, it already exists
überprüfen Sie diese Antwort: stackoverflow.com/a/56658832/1689770Antworten:
Verwenden Sie den Betriebssystembenutzer
postgres
, um Ihre Datenbank zu erstellen - sofern Sie keine Datenbankrolle mit den erforderlichen Berechtigungen eingerichtet haben, die Ihrem gleichnamigen Betriebssystembenutzer entspricht (h9uest
in Ihrem Fall):Wie hier oder hier empfohlen .
Dann versuchen Sie es erneut. Geben Sie ein,
exit
wenn Sie mit dem Betrieb als Systembenutzer fertig sindpostgres
.Oder führen Sie den einzelnen Befehl
createuser
wiepostgres
mit aussudo
, wie von drees in einer anderen Antwort gezeigt.Der Punkt besteht darin, den Betriebssystembenutzer zu verwenden, der der gleichnamigen Datenbankrolle entspricht, um über die
ident
Authentifizierung Zugriff zu erhalten .postgres
ist der Standardbenutzer des Betriebssystems, der den Datenbankcluster initialisiert hat. Das Handbuch:Ich habe von seltsamen Setups mit nicht standardmäßigen Benutzernamen gehört oder bei denen der Betriebssystembenutzer nicht existiert. Dort müssten Sie Ihre Strategie anpassen.
Weitere Informationen zu Datenbankrollen und Clientauthentifizierung finden Sie im Handbuch.
quelle
sudo etc
als Benutzer postgres ausgeführt zu werden ... Wie installiere ich ein Programm? Siehe dieses S2geometry-Installationsproblem .su postgres
.sudo -u postgres
funktioniert nicht, währendsudo -u postgres -i
funktioniert! Was macht die-i
Flagge?su
, aber basierend auf Sudo-Berechtigungen. Sieheman sudo
.Nachdem ich die Lösungen vieler anderer Leute ausprobiert hatte und ohne Erfolg, half mir diese Antwort schließlich.
https://stackoverflow.com/a/16974197/2433309
Kurz gesagt, Laufen
Erstellt eine Rolle mit dem Namen owning_user (in diesem Fall h9uest). Danach können Sie
rake db:create
vom Terminal aus unter dem von Ihnen eingerichteten Kontonamen ausgeführt werden, ohne die Postgres-Umgebung aufrufen zu müssen.quelle
-s
und musste nicht verwendensudo -u postgres
(createuser new_user
funktionierte einfach gut)psql: FATAL: role "jonny" does not exist
Okay,sudo -u postgres -s createuser jonny
dann warumcreateuser: creation of new role failed: ERROR: role "jonny" already exists
Erstellen einer Rolle auf pgsql mit dem Privileg als "Superuser"
Dann erstellen Sie Benutzer
Weisen Sie dem Benutzer Berechtigungen zu
Aktivieren Sie dann die Anmeldung für diesen Benutzer, damit Sie z. B.
psql template1
vom normalen$
Terminal aus ausführen können :quelle
CREATE ROLE username superuser createdb login;
der alle drei Schritte kombiniert ...sudo -u postgres createuser --superuser $USER; sudo -u postgres createdb $USER
#GRANT postgres TO username
Durch die Installation von postgres mit
apt-get
wird keine Benutzerrolle oder Datenbank erstellt.So erstellen Sie eine Superuser-Rolle und eine Datenbank für Ihr persönliches Benutzerkonto:
sudo -u postgres createuser -s $(whoami); createdb $(whoami)
quelle
sudo -u postgres createdb $(whoami)
-s
Flag im ersten Befehl), können Sie die Datenbank als Sie selbst erstellen. Sie müssen nichtcreatedb
als ausführenpostgres
.Das funktioniert bei mir:
quelle
postgres
(unter Linux und Windows getestet).role postgres does not exist
Arbeitsmethode,
vi /etc/postgresql/9.3/main/pg_hba.conf
local all postgres peer
hier Peer zu Vertrauen wechselnneu starten,
sudo service postgresql restart
jetzt versuchen,
psql -U postgres
quelle
trust
Methode nur in einer vollständig sicheren Umgebung ratsam ist. Während der Zugriff über nicht vertrauenswürdige Verbindungen möglich ist , sollten Sie Ihren DB-Cluster niemals so verfügbar machen.pg_hba.conf
Verwenden Sie für die Version Postgres 9.5 den folgenden Befehl:
Hoffe das wird helfen.
quelle
quelle
psql postgres
Ergebnisse:psql: FATAL: role "root" does not exist
psql postgres -U postgres
? Hängt vom Benutzer (-U) ab, den Sie haben.Geben Sie in die lokale Benutzeraufforderung und nicht in die Root-Benutzeraufforderung ein
Geben Sie dann das Passwort für den lokalen Benutzer ein.
Geben Sie dann den vorherigen Befehl ein, der generiert hat, dass "Benutzername der Rolle 'nicht vorhanden ist".
Die obigen Schritte haben das Problem für mich gelöst. Wenn nicht, senden Sie bitte Terminalnachrichten für die oben genannten Schritte.
quelle
Ich habe es unter macOS installiert und musste:
Hier ist die Quelle: https://github.com/PostgresApp/PostgresApp/issues/313#issuecomment-192461641
quelle
Das manuelle Erstellen eines DB-Clusters hat es in meinem Fall gelöst.
Aus irgendeinem Grund wurde bei der Installation von postgres die "ursprüngliche Datenbank" nicht erstellt. Das Ausführen
initdb
hat den Trick für mich getan.Diese Lösung finden Sie im PostgreSQL-Wiki - Erste Schritte :
quelle
Für Windows- Benutzer:
psql -U postgres
Sie sollten dann die Befehlszeilenschnittstelle zu PostgreSQL sehen:
postgres=#
quelle
Befolgen Sie diese Schritte und es wird für Sie funktionieren:
msfconsole
db_connect user:pass@host:port.../database
Entschuldigung, ich erinnere mich nicht daran, aber es ist so, dann ersetzen Sie den Benutzer und das Passwort sowie den Host und die Datenbank durch die Informationen, diedatabase.yml
in der Position enthalten sind ::/usr/share/metasploit-framework/config
msfconsole: msf>db_status
dass die Verbindung hergestellt ist.quelle
Dump und Wiederherstellung mit
--no-owner --no-privileges
Flagsz.B
Dump -
pg_dump --no-owner --no-privileges --format=c --dbname=postgres://userpass:username@postgres:5432/schemaname > /tmp/full.dump
wiederherstellen -
pg_restore --no-owner --no-privileges --format=c --dbname=postgres://userpass:username@postgres:5432/schemaname /tmp/full.dump
quelle