2013-05-28 10 views
14

Ich habe eine .pgpass Datei in meinem Home-Verzeichnis erstellt, die wie diesespostgresql: .pgpass funktioniert nicht

localhost:5432:somedb:someuser:somepass

I Skript bin mit einem Shell sieht, die ein Verzeichnis erstellt und legt eine pg_dump von somedb dort:

mkdir directory 
pg_dump somedb > directory/somefile.dump 

Es fordert immer noch zur Eingabe des Passworts auf.

Wo ist der Fehler hier?

+4

Haben Sie versucht, den Host und den Benutzer anzugeben? 'pg_dump -U someuser -h localhost somedb> Verzeichnis/somefile.dump' – devnull

+0

Ja ein wirklich dummer Fehler. Angegeben der Benutzer und es funktioniert: D Danke –

+0

@devnull Bitte post die Antwort akzeptiert werden. –

Antwort

18

Haben Sie versucht, den Host & Benutzer anzugeben?

pg_dump -U someuser -h localhost somedb > directory/somefile.dump 
+14

Ist die .pgpass-Datei angeblich nicht die Notwendigkeit, einen Host und einen Benutzer anzugeben? –

+6

@IanHunter Nein, der Zweck der Bereitstellung des Benutzernamens und des Hosts in der Datei pgpass besteht darin, übereinstimmende Kriterien zu erstellen. "Wenn dieser Benutzername und dieser Host angegeben sind, verwenden Sie dieses Passwort". Es kann dieses Match nur dann ausführen, wenn Sie ihm einen Benutzernamen und einen Host geben, mit dem es übereinstimmt, – JHixson

+0

@JHixson - Ich mag Ihre Erklärung, aber dies ist das erste Mal, dass ich die so beschriebene .pgpass-Datei gesehen habe - können Sie eine Referenz bereitstellen für diese Erklärung? –

15

Obwohl Frage bereits beantwortet und akzeptiert wurde, ist es auch, dass die Berechtigungen für .pgpass Datei passieren können, sind nicht richtig eingestellt. Es muss der Welt- und Gruppenzugriff nicht erlaubt sein:

/bin/chmod 0600 ~/.pgpass 
+0

Ja, merkwürdigerweise – Donato

1

Überprüfen Sie den Besitzer der .pgpass-Datei. Habe gerade eine halbe Stunde verloren, um herauszufinden, dass ich meine .pgpass-Datei mit sudo erstellt habe. Der Befehl für meinen Benutzer und Speicherort war chown postgres:postgres /var/lib/pgsql/.pgpass.

Verwandte Themen