Wie kann ich anrufen psql so dass es fragt nicht nach einem Passwort ?
Das habe ich:
psql -Umyuser < myscript.sql
Ich konnte jedoch das Argument für die Übergabe des Passworts nicht finden, so dass psql immer nach dem Passwort fragt.
Wie kann ich anrufen psql so dass es fragt nicht nach einem Passwort ?
Das habe ich:
psql -Umyuser < myscript.sql
Ich konnte jedoch das Argument für die Übergabe des Passworts nicht finden, so dass psql immer nach dem Passwort fragt.
Eine Alternative zur Verwendung von PGPASSWORD
Umgebungsvariable zu verwenden ist conninfo
Zeichenkette gemäß der Dokumentation
Ein alternativer Weg, die Verbindung pa Zeichenkette oder einem URI, der anstelle eines Datenbanknamens verwendet wird. Dieser Mechanismus gibt Ihnen sehr viel Kontrolle über die Verbindung.
$ psql "host=<server> port=5432 dbname=<db> user=<user> password=<password>"
postgres=>
Sie müssen eine Passwortdatei erstellen: siehe http://www.postgresql.org/docs/9.0/interactive/libpq-pgpass.html für weitere Informationen.
Wenn Sie wie ich Probleme mit Windows haben (ich verwende Windows 7 64-Bit) und set PGPASSWORD=[Password]
hat nicht funktioniert.
Dann, wie Kavaklioglu in einem der Kommentare sagte,
export PGPASSWORD=[password]
Sie müssen dies am Anfang der Datei oder vor jeder Verwendung speichern, damit es vor dem Aufruf gesetzt wird.
Unter Windows funktioniert es auf jeden Fall :)
Angesichts der Sicherheitsbedenken bei der Verwendung der Umgebungsvariablen PGPASSWORD halte ich die folgende Lösung für die beste:
Hier sind einige Punkte zu beachten. Schritt 1 soll verhindern, dass die eventuell vorhandene Datei ~/.pgpass des Benutzers verändert wird. Sie müssen auch sicherstellen, dass die Datei die Berechtigung 0600 oder weniger hat.
Einige haben vorgeschlagen, die bash zu nutzen, um dies wie folgt abzukürzen:
PGPASSFILE=<(echo myserver:5432:mydb:jdoe:password) psql -h myserver -U jdoe -p 5432 mydb
Dabei wird die <()-Syntax verwendet, damit die Daten nicht in eine eigentliche Datei geschrieben werden müssen. Aber es funktioniert nicht, weil psql prüft, welche Datei verwendet wird und einen Fehler wie diesen ausgibt:
WARNING: password file "/dev/fd/63" is not a plain file
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.