pg_restore在没有数据库时要求输入密码

时间:2013-07-23 19:21:16

标签: postgresql pg-restore

我在新的Ubuntu安装上设置了Rails应用程序,并使用rake db:create:all创建了Postgres数据库。在databases.yml中,所有数据库的密码字段都留空。我正在尝试从应用程序的生产部署中捕获转储的pg_restore,但我一直在提示输入密码。我觉得这与pg_hba.conf文件中的设置有关,但我不记得我在之前的Ubuntu安装中如何设置它们。如何让Postgres信任pg_restore以获取本地连接?或者是否存在导致此问题的不同之处?

2 个答案:

答案 0 :(得分:10)

trust中的peer个连接设置local(或pg_hba.conf,如果要将postgresql用户名与unix用户名匹配)。你几乎在你的问题中回答了这个问题。

如果您明确指定-h localhost,那么您使用的是TCP / IP,因此您需要省略-h localhost,使用-h /tmpunix_socket_directory。 }已配置为在trust中为host的{​​{1}}个127.0.0.1/32连接设置为pg_hba.conf

请参阅pg_hba.confclient authentication

答案 1 :(得分:0)

另一种解决方案是将客户端计算机上的登录凭据存储在用户主目录中的.pgpass文件中:

本地主机:*:数据库:用户名:密码

此文件的权限必须至少为0600,否则将被忽略。

http://www.postgresql.org/docs/9.2/interactive/libpq-pgpass.html