我在 Centos 6.4 中安装了 postgresql9.1。我可以执行psql template
(as root
) 打开数据库控制台,但无法使用 Railsrake db:create
创建数据库:
FATAL: Ident authentication failed for user "root"
我的配置如下:
{
"adapter"=>"postgresql",
"host"=>"localhost",
"encoding"=>"unicode",
"username"=>"root",
"pool"=>5,
"database"=>"xxx_prod"
}
我猜想 Rails 无法找到 sock 文件 (.s.PGSQL.5432)。因此我想明确指定它,但我不知道 sock 文件位于何处。它应该在哪里?我该如何找到它?
答案1
问题不在于 sock 文件,而在于将“ident”作为默认身份验证方案的决定(在我看来非常糟糕)。
找到 pg_hba.conf 文件并将“ident”更改为“trust”或“md5”。
如果你想了解更多 - 请考虑阅读这篇博文。