web-dev-qa-db-ja.com

pg_dump:コマンドライン引数が多すぎます

このコマンドの何が問題になっていますか:

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

これにより、コマンドライン引数が多すぎるというエラーが発生します

24
Bhargav Gor

-Wオプションのように見えます。そのオプションを使用する価値はありません。

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

パスワードを入力せずにコマンドを実行する場合は、.pgpassファイルを使用します。 http://www.postgresql.org/docs/9.1/static/libpq-pgpass.html

30
Jim

後世のために、pg_dumpとpg_restore(および他の多くのコマンド)は、ワードプロセッサが作成する長いハイフンを処理できないことに注意してください。ワードプロセッサからコマンドラインを切り貼りする場合は、編集時にハイフンが他の何かに変換されていないことを確認してください。そうしないと、正しく見えるコマンドラインが表示されますが、これらのツールの引数パーサーを混乱させてしまいます。

16
johnkaplantech

これは、ダッシュの1つが異なっていたコピー貼り付けから得ました。

Was:–-Host=(最初のダッシュは「長い」ダッシュ)--Host=に修正して解決しました

-W->完全なDBダンプを取るためにパスワードの入力を求めます。

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

pg_dumpとpg_restoreはコマンドラインでパスワードを要求する必要があります。コマンドを入力すると、常に「コマンドライン引数が多すぎます」というエラーが発生します。以下を使用して、コマンドラインまたはバッチファイルで関連する環境変数を設定できます。

"SET PGPASSWORD=<password>"

バッチファイルに手動でパスワードを入力するように求められないようにします。それらは与えられた環境変数を使用します。

3
Mustafa Kemal

-Wフラグでパスワードを渡す代わりに、postgresの一時変数を設定することから始めます。

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

別のオプションは、次のような内容の~/.pgpassファイルを追加することです:

hostname:port:database:username:password

続きを読む ここ

0
Szymon Rut