Rails + Postgres fe_sendauth:没有提供密码

时间:2012-12-03 19:21:12

标签: ruby-on-rails postgresql

您好我正在尝试将postgresql连接到我的rails项目。我正在学习测试,但我的测试没有运行,因为postgresql错误导致密码不正确:

Edmunds-MacBook-Pro:langexchange edmundmai$ rake test:units
rake aborted!
fe_sendauth: no password supplied

我已经读完了,我的pg_hba.conf文件最初已经是这样了:

# TYPE  DATABASE        USER            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
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     edmundmai  

这是我的rails项目中的database.yml文件

default: &default
  adapter: postgresql
  encoding: utf8
  pool: 5
  username: edmundmai
  password: 

development:
  <<: *default
  database: project_development

test:
  <<: *default
  database: project_test

production:
  <<: *default
  database: project_production

有谁知道如何解决这个问题?我们可以聊聊,如果它更容易。

4 个答案:

答案 0 :(得分:21)

确保您已在生产主机服务器上定义了RAILS_ENV和RACK_ENV。我有一个类似的问题,除了rake之外一切正常,解决方案是将RACK_ENV = production添加到我的环境中。 RAILS_ENV已投入生产。

export RACK_ENV=production

bundle exec rake db:version

您应该看到一些输出,例如:

Current version: 20121126151935

解决方案:确保您的Rails应用程序可以访问RAILS_ENV和RACK_ENV环境变量。另外,确保它们的价值相同。

答案 1 :(得分:10)

首先你应该改变:

local   all             all                                     trust

为:

local   all             all                                     md5

然后,您应该在PostgreSQL中使用usernamepassword创建 super_user ,之后将usernamepassword新用户添加到您的database.yml文件。

要创建新的super_user,请打开Pg Admin III并右键单击底部Login Roles以创建新的超级用户。

答案 2 :(得分:4)

test文件的developmentdatabase.yml部分下的本地计算机上,您应该将username更改为您登录的用户名。 rails生成器使它与您的appname相同,但不起作用。 production部分取决于您的生产设置。如果您使用heroku,则无需更改任何内容。

答案 3 :(得分:0)

您只需要使用pgadmin在postgres中创建user / passw和schema(db),并将user / passw放在database.yml中。当我尝试使用rake db:create in current rails project folder创建数据库时,它失败了,并且向我扔了错误,无法为postgreSQL适配器创建错误。之后我使用pgadmin为rails项目创建了模式,每次都没有任何更改pg_hba.conf。