Postgresql 9.2执行pg_dump命令问题[重复]
Posted
技术标签:
【中文标题】Postgresql 9.2执行pg_dump命令问题[重复]【英文标题】:Postgresql 9.2 execute pg_dump command issue [duplicate] 【发布时间】:2014-12-05 09:27:27 【问题描述】:我需要备份命令 postgres 数据库。
我可以成功执行命令,但是命令要输入密码来执行所以我应该怎么做才能避免输入密码。
下面是命令:
pg_dump -i -h localhost -p 5432 -U postgres -F c -b -v C:\PostgreSQL\PostgreSQL\bin\Data.backup" DB_NAME
请建议我该怎么做?
提前致谢。
【问题讨论】:
【参考方案1】:您必须更改PostgreSQL Server
中的pg_hba.conf
,如果您使用的是pgAdmin
,请转到工具> 服务器配置->ph_hba.conf
并将ticked
类型的方法更改为trust
然后重启PostgreSQL server
我强烈推荐你使用MD5
引自pg_dump
-w --no-password 从不发出密码提示。如果服务器需要密码认证,而其他方式无法获得密码 例如 .pgpass 文件,连接尝试将失败。这个选项 在没有用户的批处理作业和脚本中可能很有用 输入密码。
-W --password 强制 pg_dump 在连接数据库之前提示输入密码。
这个选项从来都不是必需的,因为 pg_dump 会自动 如果服务器要求密码验证,则提示输入密码。 但是,pg_dump 会浪费一次连接尝试,发现 服务器想要一个密码。在某些情况下,值得输入 -W 以避免 额外的连接尝试。
【讨论】:
-W yourPassword
绝对不正确。 pg_dump
在其参数中不接受密码,-W
在自动无密码连接中没有帮助。【参考方案2】:
设置一个pgpass file,比盲目地让全世界都访问你的数据库要好。
这是一个简单的文本文件,您应该确保它只能由您的用户帐户读取。然后,只需填写host/port/db/user/password详细信息,psql和pg_dump等会自动使用它而不是提示你。
注意 - 如果其他人可以阅读此文件,那么他们可以看到您的密码。所以确保他们不能。
【讨论】:
以上是关于Postgresql 9.2执行pg_dump命令问题[重复]的主要内容,如果未能解决你的问题,请参考以下文章