2012-03-09 51 views
14

这是怎么我的database.yml文件长相(当然也有用于测试和生产的相关条目)Rails的无法登录到PostgreSQL - PG ::错误 - 密码 - 正确的信息

development: 
    adapter: postgresql 
    encoding: unicode 
    database: dbname_dev 
    pool: 5 
    username: username 
    password: tehpass 

在终端我可以成功运行的追随者,并登录到数据库:

psql -U username dbname_dev 

但是创造这个新的Rails项目和运行

rails g controller ComingSoon index 

我收到以下消息时,我去为localhost:3000/COMING_SOON(尽管双重和三重检查登录凭据)

fe_sendauth: no password supplied 

任何想法,为什么我可以通过“psql的”登录到这些数据库,但Rails可以不?

回答

25

的database.yml:

connection: &connection 
    adapter: postgresql 
    encoding: unicode 
    pool: 5 
    username: username 
    password: tehpass 

development: 
    <<: *connection 
    database: dbname_development 

test: 
    <<: *connection 
    database: dbname_test 

production: 
    <<: *connection 
    database: dbname_production 

如果这不是为你工作的话,有可能是一些在安装过程中出错。

访问此blog,希望这可能会帮助你。


编辑


错误情况:

e_sendauth: no password supplied 

fe_sendauth: no password supplied 

这种情况下,现有的Ubuntu安装,并且是由于pg_hba.conf中被默认过于严格的权限。要允许rails连接,只需将pg_hba.conf的底部更改为如下所示。

# TYPE DATABASE USER  CIDR-ADDRESS   METHOD 

# "local" is for Unix domain socket connections only 
local all   all        trust 
# IPv4 local connections: 
host all   all   127.0.0.1/32   trust 
# IPv6 local connections: 
host all   all   ::1/128    trust 

让我知道如果这有帮助吗?

+1

是的,我改用了更多的DRY方法。我浏览了博客文章和最近的答案。关于最近的答案,我不确定A)该文件所在的位置和B)如果它甚至是一个问题,因为我使用的是Lion – 2012-03-09 22:51:11

+0

我想它必须存储在'/ usr/local/var/postgres /' – 2012-03-10 02:02:30

+0

把你的用户名和密码写成纯文本真的是个好主意? – 2013-09-26 16:48:10

相关问题