2012-02-28 232 views
2

我对Ruby和postgres很新。Rails postgresql数据库连接失败

下面是我的database.yml

development: 
    adapter: postgresql 
    database: test_database 
    username: postgresql 
    password: mypassword 
    host: localhost 
    encoding: utf8 

用户存在和我,能够使用phpPgAdmin的相同的凭据登录。但是当我启动rails服务器并转到应用程序的主页时,我得到了FATAL: Ident authentication failed for user "postgresql"

编辑:万一pghba.conf事项,

# TYPE DATABASE   USER   ADDRESS     METHOD 

# "local" is for Unix domain socket connections only 
#local all    all          peer 
local  all    postgres        md5 
local  all    postgresql        md5 

谁能请帮助?

+0

可以使用这些凭据登录到命令行客户端吗? – jergason 2012-02-28 23:47:41

+0

您是否重新启动Postgresql服务器?查看我的回答 – 2012-02-28 23:49:01

回答

2

开放PostgreSQL客户端身份验证配置文件

vi /var/lib/pgsql/data/pg_hba.conf 

该文件下面管理充塞

  1. 允许哪些主机连接
  2. 如何客户端进行身份验证
  3. 哪个PostgreSQL用户,他们可以名使用
  4. 他们可以访问哪些数据库

默认情况下,Postgresql使用基于IDENT的身份验证。您只需为网络或网络服务器提供基于用户名和密码的身份验证即可。 IDENT永远不会允许您通过-U和-W选项登录。追加以下允许登录通过本地主机只:

local all all   trust 
host all 127.0.0.1/32 trust 

保存并关闭文件。 重启PostgreSQL服务器:

service postgresql restart OR 
sudo /etc/init.d/postgresql restart 

它应该工作

+0

如果您运行的是Debian服务器,请在/etc/postgresql/X.X/main中找到pg_hba.conf(用您的版本号替换X.X)。 – 2013-09-07 13:03:57

1

我能找到我的pg_hba.conf文件路径:

/etc/postgresql/8.4/main/pg_hba.conf 
1

对于任何人谁仍不能找到他们pg_hba.conf文件,我使用PostgreSQL v9.2,我发现我的:

/var/lib/pgsql/9.2/data/pg_hba.conf 
+0

同样在这里,CentOS 6.6。另外,这个文件由postgres拥有,所以我已经成为postgres用户来访问它($ sudo su postgres)。 – Patrick 2015-05-26 23:37:30