可以通过命令行访问postgres,但rake / rails命令不起作用

时间:2014-05-01 18:21:42

标签: ruby-on-rails postgresql

尝试使用vagrant为本地VM中的rails应用程序设置postgres。我可以与流浪者用户进入postgres shell没问题:

psql -d postgres -U vagrant

但是,当运行rake db:create等命令时,出现错误:

Couldn't create database for {"adapter"=>"postgresql", "encoding"=>"unicode", "database"=>"vagrant_d", "username"=>"vagrant"}
The driver encountered an unknown error: org.postgresql.util.PSQLException: FATAL: password authentication failed for user "vagrant"

我的yaml文件:

development:
  adapter: postgresql
  encoding: unicode
  database: vagrant_d
  username: vagrant

test:
  adapter: postgresql
  encoding: unicode
  database: vagrant_t
  username: vagrant

我已经设置了pg_hba.conf文件:

local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

有什么想法吗?

注意这是一个带有postgresql 9.1的debian机器

2 个答案:

答案 0 :(得分:0)

只需将host: localhost添加到数据库配置即可。这迫使它通过TCP / IP连接,否则它可能会尝试通过套接字连接。

答案 1 :(得分:0)

为流浪者用户创建密码并授予权限:

=# alter user vagrant with password '';
=# alter role vagrant superuser createdb replication;