6

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

4

2 回答 2

12

为. trust_ peer_ local_ pg_hba.conf你在你的问题中几乎回答了它。

如果您-h localhost明确指定,那么您正在使用 TCP/IP,因此您需要忽略-h localhost、使用-h /tmpunix_socket_directory配置为居住的任何地方,或者也trusthost来自127.0.0.1/32in的连接设置pg_hba.conf

请参阅pg_hba.conf客户端身份验证

于 2013-07-24T02:53:08.017 回答
0

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

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

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

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

于 2013-10-17T17:19:40.007 回答