Habe eine neue Installation von Postgres 8.4 auf Mint Ubuntu gemacht. Wie erstelle ich einen Benutzer für Postgres und melde mich mit psql an?
Wenn ich psql eingebe, sagt es mir nur
psql: FATAL: Ident authentication failed for user "my-ubuntu-username"
postgresql
authentication
passwords
ident
user61734
quelle
quelle
Antworten:
Es gibt zwei Methoden, die Sie verwenden können. Für beide müssen ein Benutzer und eine Datenbank erstellt werden.
Standardmäßig stellt psql eine Verbindung zur Datenbank mit demselben Namen wie der Benutzer her. Es gibt also eine Konvention, die die "Benutzerdatenbank" macht . Und es gibt keinen Grund, diese Konvention zu brechen, wenn Ihr Benutzer nur eine Datenbank benötigt. Wir werden
mydatabase
als Beispiel Datenbanknamen verwenden.Mit createuser und createdb können wir den Datenbanknamen explizit angeben.
Sie sollten dies wahrscheinlich ganz weglassen und stattdessen alle Befehle standardmäßig auf den Benutzernamen setzen.
Verwenden der SQL-Verwaltungsbefehle und Herstellen einer Verbindung mit einem Kennwort über TCP
Und dann in der psql-Shell
CREATE ROLE myuser LOGIN PASSWORD 'mypass'; CREATE DATABASE mydatabase WITH OWNER = myuser;
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:SHOW port;
Oder,
$ grep "port =" /etc/postgresql/*/main/postgresql.conf
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 anzumeldenSA
. Und das bedeutet, dass Sie normalerweise sowieso Chaos anrichten könnten.quelle
sudo -u postgres psql postgres
? Ich verstehesudo
bedeutet Root-Privileg,-u postgres
bedeutet, sich als Benutzer anzumeldenpostgres
,psql
ist der Befehl, mit dem eine Verbindung hergestellt werden sollpostgresql
, aber was macht der letztepostgres
?Standardmäßig müssten Sie den Benutzer postgres verwenden:
quelle
Der Fehler, den Sie erhalten, ist, dass Ihr Ubuntu-Benutzername kein gültiger Postgres-Benutzer ist.
Sie müssen psql mitteilen, welcher Datenbankbenutzername verwendet werden soll
Möglicherweise müssen Sie auch die Datenbank angeben, zu der eine Verbindung hergestellt werden soll
quelle
psql -U myuser -d mydb
funktioniert perfekt, währendpsql -U myuser
versucht wird, Peer-Authentifizierung zu verwenden, danke!Sie können auch als "normaler" Benutzer (nicht als Postgres) eine Verbindung zur Datenbank herstellen:
postgres=# \connect opensim Opensim_Tester localhost; Password for user Opensim_Tester: You are now connected to database "opensim" as user "Opensim_Tester" on host "localhost" at port "5432"
quelle
Wenn Ihr Datenbankclient eine Verbindung mit TCP / IP herstellt und in Ihrer pg_hba.conf die Identifizierungsauthentifizierung konfiguriert ist, überprüfen Sie, ob eine IDD installiert ist und ausgeführt wird. Dies ist obligatorisch, auch wenn nur lokale Clients eine Verbindung zu "localhost" herstellen.
Beachten Sie auch, dass heutzutage die ID möglicherweise IPv6-fähig sein muss, damit Postgresql Clients willkommen heißt, die eine Verbindung zu localhost herstellen.
quelle
Der Hauptunterschied zwischen der Anmeldung bei einem Postgres-Benutzer oder einem anderen von uns erstellten Benutzer besteht darin, dass bei Verwendung des Postgres-Benutzers der Host NICHT mit -h und stattdessen für einen anderen Benutzer angegeben werden muss, wenn.
Loggen Sie sich mit dem Benutzer von postgres ein
Erstellung und Anmeldung mit einem anderen Benutzer
# CREATE ROLE usertest LOGIN PASSWORD 'pwtest'; # CREATE DATABASE dbtest WITH OWNER = usertest; # SHOW port; # \q $ psql -h localhost -d dbtest -U usertest -p 5432
GL
Quelle
quelle