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命令问题[重复]的主要内容,如果未能解决你的问题,请参考以下文章

PostgreSQL 备份与还原命令 pg_dump

如何更新 Elastic Beanstalk 上的 pg_dump

PostgreSQL 数据库备份

Postgresql psql脚本执行命令该怎么写

postgresql学习笔记备份与恢复

PostgreSQL逻辑备份pg_dump使用及其原理解析