Wie kann ich mit psql arbeiten in ubuntu von der shell: $ psql -U admin -d mydb
Anscheinend ist dies eine ziemlich schwierige Frage, weil einfach, wie es ist, niemand zu haben scheint, antwortete Sie.
Habe ich PostgreSQL läuft auf ubuntu 12.10 server (keine GUI).
Mein Ziel - meine Frage ist - ist zum erstellen einer Datenbank namens "mydb" und ein Benutzer "admin", so dass ich geben kann diesen Befehl als normaler Benutzer aus der Schale und die Verbindung zu der Datenbank:
$ psql -U admin -d mydb
Aber ich kann nicht finden die Antwort auf diese überall.
Kann ich als Benutzer anmelden postgres von su ' Ing und ausführen der psql Befehl:
$ sudo su -m postgres
postgres@baseubu1210dev:~$ psql
psql (9.1.7)
Type "help" for help.
postgres=#
Ich habe herausgefunden, wie man erstellen Sie eine Datenbank namens "mydb" und ein Benutzer "admin" so, dass:
postgres=# \du
Role name | List of roles Attributes | Member of
-----------+------------------------------------------------
admin | Superuser, Create role, Create DB | {}
postgres | Superuser, Create role, Create DB, Replication | {}
Habe ich nicht herausgefunden, wie stellen Sie sicher, dass der Benutzer "admin" eine Verbindung herstellen können, um die "mydb" Datenbank - vielleicht jemand der mit solchen Privilegien nicht müssen? [Während ich das Schreibe, merke ich, dass ich sollte wohl widerrufen Superuser-Berechtigungen vom admin.]
Ist und was ich eigentlich wissen will ist, wie eine Verbindung von einem regulären Benutzers shell:
$ psql -U postgres
psql: FATAL: Peer authentication failed for user "postgres"
Sicherlich gibt es auch ungeschriebene Annahmen über das ausführen von postgreSQL, die ich bin Missverständnis, aber ein paar Stunden Suche, auf der Suche auf tutorials, etc., hat das problem nicht gelöst. Ich werde vollkommen glücklich, wenn jemand sagt, dass dies schon beantwortet wurde, vor allem, wenn es hat. Ich gehe davon aus und hoffe, dass die Antwort ist einfach und dankbar für Ihre Hilfe.
Dank,
ge
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aus der Fehlermeldung, es scheint, dass die Authentifizierungs-Einstellungen wurden nicht korrekt eingestellt.
Neben den Einstellungen in der Datenbank, PostgreSQL verwendet auch eine Konfigurations-Datei (pg_hba.conf), die angibt, welche Authentifizierungs-Mechanismen verwendet werden können, pro Benutzer, host und Datenbank. Sie können festlegen, dass Benutzer können nur eine Verbindung per Passwort/md5-Passwort oder auch "no authentication required'
Derzeit Ihre Konfiguration verwendet wahrscheinlich 'Peer' - Authentifizierung für alle Benutzer, die einfach bedeutet: Nur zulassen, dass Benutzer, wenn Sie die aktuell angemeldeten Benutzers (z.B. shell-Benutzer sollten werden auch als 'admin'). Aus deiner Frage, das ist nicht, was Sie wollen, werden Sie wahrscheinlich wollen, um das Kennwort oder md5-Authentifizierung-Mechanismus.
Ich denke, dass diese Seiten geben Ihnen die Antwort, die Sie brauchen:
http://web.archive.org/web/20131001194046/http://blog.deliciousrobots.com/2011/12/13/get-postgres-working-on-ubuntu-or-linux-mint/ (archivierte version)
Offizielle Dokumentation:
http://www.postgresql.org/docs/current/static/auth-pg-hba-conf.html
Erinnern zu postgresql reload nach der änderung der pg_hba.conf-Datei!
update
Original-blog-post-ich bezeichnet, ist jetzt offline, der link verweist nun auf eine archivierte version. Dank @O_the_Del für die Berichterstattung.
Auf Debian, PostgreSQL lauscht standardmäßig auf localhost, also, wenn Sie eine Regel haben, in der pg_hba.conf, welche es ermöglicht TCP/IP-verbindungen können Sie mittels der -h parameter zu entsprechen, die Regel: