pg_dump:命令行参数太多

时间:2012-08-08 13:27:46

标签: postgresql dump database-backups pg-dump

这个命令出了什么问题:

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

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

7 个答案:

答案 0 :(得分:23)

看起来像是-W选项。这个选项没有任何价值。

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

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

答案 1 :(得分:10)

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

答案 2 :(得分:3)

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

"SET PGPASSWORD=<password>"

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

答案 3 :(得分:3)

我是通过复制粘贴得到的,其中一个破折号是不同的。

是:func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { let characterSet = CharacterSet(charactersIn: string) let allowedCharacters = (self.isNumericTextInput ? CharacterSet.decimalDigits : CharacterSet(charactersIn: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 -")) return allowedCharacters.isSuperset(of: characterSet) && returnFlag } (第一次破折号是“长”破折号) 更正了–-host=解决了它

答案 4 :(得分:2)

-W - &gt;将提示输入密码 采取完整的数据库转储 使用像

这样的东西
pg_dump -h 192.168.44.200 -p 5432 -U postgres -W -c -C -Fc -f C:\MMM\backup10_3.backup DATABASE_NAME

答案 5 :(得分:0)

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

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

答案 6 :(得分:0)

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

hostname:port:database:username:password

了解更多here