36

这个命令有什么问题:

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

这给出了太多命令行参数的错误

4

8 回答 8

41

看起来像它的 -W 选项。该选项没有任何价值。

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

如果要在不输入密码的情况下运行命令,请使用 .pgpass 文件。 http://www.postgresql.org/docs/9.1/static/libpq-pgpass.html

于 2012-08-08T13:41:38.320 回答
23

对于后代,请注意 pg_dump 和 pg_restore(以及许多其他命令)无法处理文字处理器创建的长连字符。如果您从文字处理器剪切粘贴命令行,请确保它没有在编辑中将您的连字符转换为其他内容。否则,您将获得看起来正确但令人绝望地混淆这些工具中的参数解析器的命令行。

于 2014-01-09T17:08:38.390 回答
12

pg_dump 和 pg_restore 需要在命令行询问密码,如果你输入命令,他们总是给出“命令行参数太多”的错误。您可以使用以下命令在命令行或批处理文件中设置相关环境变量:

"SET PGPASSWORD=<password>"

这样您就不会被要求在批处理文件中手动输入密码。他们使用给定的环境变量。

于 2017-04-12T07:22:22.670 回答
9

-W而不是通过为 postgres 设置临时变量来传递带有标志的密码:

PGPASSWORD="mypass" pg_dump -U postgres--disable-triggers -a -t employees -f D:\ddd.txt postgres
于 2018-12-19T09:51:40.410 回答
5

-W -> 将提示输入密码以获取完整的数据库转储,使用类似的东西

pg_dump -h 192.168.44.200 -p 5432 -U postgres -W -c -C -Fc -f C:\MMM\backup10_3.backup DATABASE_NAME
于 2014-04-11T04:22:27.483 回答
4

我从复制粘贴中得到了这个,其中 1 个破折号不同。

是:(–-host=第一个破折号是“长”破折号)更正以--host=解决它

于 2017-05-23T00:49:16.817 回答
1

另一种选择是添加~/.pgpass内容如下的文件:

hostname:port:database:username:password

在这里阅读更多

于 2019-01-12T11:10:48.777 回答
0

2021 年 11 月 30 日,pg v12,Windows 10

pg_dump -U postgres -W -F t postgres > C:\myfolder\pg.tar

-U "postgres"作为用户名,

-W提示输入 psd,

-F t表示格式为 .tar,

> C:\myfolder\pg.tar是目标路径和文件名

于 2021-11-30T22:26:29.323 回答