it-swarm.com.de

pg_dump: zu viele Befehlszeilenargumente

was ist los mit diesem Befehl:

pg_dump -U postgres -W admin --disable-triggers -a -t employees -f D:\ddd.txt postgres

Dies führt zu Fehlern bei zu vielen Befehlszeilenargumenten

19
Bhargav Gor

Sieht aus wie die Option -W. Es gibt keinen Wert für diese Option.

-W, --password           force password Prompt (should happen automatically)

Wenn Sie den Befehl ausführen möchten, ohne ein Kennwort einzugeben, verwenden Sie eine .pgpass-Datei. http://www.postgresql.org/docs/9.1/static/libpq-pgpass.html

23
Jim

Beachten Sie für die Nachwelt, dass pg_dump und pg_restore (und viele andere Befehle) keine langen Bindestriche verarbeiten können, die von Word-Prozessoren erstellt werden. Wenn Sie Befehlszeilen aus einem Textverarbeitungsprogramm ausschneiden, stellen Sie sicher, dass die Trennzeichen während der Bearbeitung nicht in andere umgewandelt wurden. Andernfalls erhalten Sie Befehlszeilen, die richtig aussehen, die Argument-Parser in diesen Tools jedoch hoffnungslos verwirren.

10
johnkaplantech

pg_dump und pg_restore müssen das Kennwort auf commanline abfragen. Wenn Sie den Befehl setzen, wird immer der Fehler "zu viele Befehlszeilenargumente" ausgegeben. Im Folgenden können Sie verwandte Umgebungsvariablen in der Befehlszeile oder der Batchdatei einstellen:

"SET PGPASSWORD=<password>"

sie werden also nicht aufgefordert, das Kennwort manuell in die Batchdatei einzugeben. Sie verwenden gegebene Umgebungsvariable.

3
Mustafa Kemal

Ich habe dies durch Kopieren erhalten, wobei einer der Striche anders war.

War: –-Host= (erster Strich ist ein "langer" Bindestrich) Korrigiert zu --Host= gelöst

-W -> fordert zur Eingabe eines Kennworts auf, um den vollständigen DB-Speicherauszug zu verwenden

pg_dump -h 192.168.44.200 -p 5432 -U postgres -W -c -C -Fc -f C:\MMM\backup10_3.backup DATABASE_NAME
1
Muthu

Anstatt das Kennwort mit dem Code -W zu übergeben, beginnen Sie mit dem Festlegen der temporären Variablen für Postgres

PGPASSWORD="mypass" pg_dump -U postgres--disable-triggers -a -t employees -f D:\ddd.txt postgres
0
Bartosz

Eine weitere Option ist das Hinzufügen einer ~/.pgpass-Datei mit folgendem Inhalt:

hostname:port:database:username:password

lesen Sie mehr hier

0
Szymon Rut