2014-10-10 99 views
0

我需要备份命令Postgres数据库。PostgreSQL的9.2执行pg_dump的命令发出

我可以成功地执行命令,但命令要为执行那么我应该怎么做,以避免在输入密码输入密码。

下面是命令:

pg_dump -i -h localhost -p 5432 -U postgres -F c -b -v C:\PostgreSQL\PostgreSQL\bin\Data.backup" DB_NAME 

请建议我该怎么办?

在此先感谢。

回答

0

你必须改变pg_hba.confPostgreSQL Server,如果您使用pgAdmin然后转到工具>服务器配置 - > ph_hba.conf

,改变ticked类型的方法trust

enter image description here

并重新启动PostgreSQL server


我强烈建议你使用MD5

pg_dump

-w 引用--no密码从未发出一个密码提示。如果服务器需要密码验证,并且通过诸如.pgpass文件之类的其他方式(如 )不提供密码,则连接尝试将失败。此选项 可用于批处理作业和脚本,其中不存在 用户输入密码。

-W --password力告诉pg_dump连接到数据库之前提示输入密码。

此选项是永远必要的,因为pg_dump输出会自动 提示如果服务器要求口令认证密码。 但是,pg_dump会浪费连接尝试,发现 服务器需要密码。在某些情况下,值得输入-W以避免 额外的连接尝试。

+0

'-W yourPassword'肯定是不正确的。 'pg_dump'在它的参数中不接受密码,'-W'没有帮助自动无密码连接。 – 2014-10-10 10:55:36

0

比让整个世界访问你的数据库更好的是建立一个pgpass file

这是一个简单的文本文件,你应该确保仅受您的用户帐户可读。然后,只需填写host/port/db/user/password的详细信息,psql和pg_dump等将自动使用它而不是提示您。

备注 - 如果其他人可以阅读此文件,那么他们可以看到您的密码。所以确保他们不能。