Postgres rake db:migrate失败,访问被拒绝错误

时间:2011-11-20 02:59:56

标签: ruby-on-rails ruby-on-rails-3 macos postgresql osx-lion

我正在使用MacOSX Lion,ruby 1.9.2,Rails 3.1.2和postgres 9.0.4

我做了一个rake db:使用postgres在我的应用上迁移。它因访问被拒绝错误而失败。

** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Invoke db:load_config (first_time)
** Invoke rails_env (first_time)
** Execute rails_env
** Execute db:load_config
** Execute db:migrate
rake aborted!
could not connect to server: Permission denied
    Is the server running locally and accepting
    connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

我已检查服务器是否正在运行且运行正常。我可以使用

成功连接到我的数据库
psql -Umyuser myapp_development
psql -Umyuser myapp_test

在创建新的PG用户时,它从未向我询问过密码,因此我没有在任何地方为该用户myuser提供密码。

这是我的database.yml文件。

development:
  adapter: postgresql
  encoding: utf8
  database: myapp_development
  username: pgguy

test:
  adapter: postgresql
  encoding: utf8
  database: myapp_test
  username: pgguy

production:
  adapter: postgresql
  encoding: utf8
  database: myapp_production

我应该怎么做才能从我的rails应用程序连接到它?

1 个答案:

答案 0 :(得分:24)

host添加到我的database.yml文件解决了这个问题。

development:
  adapter: postgresql
  encoding: utf8
  database: myapp_development
  username: myuser
  host: localhost

test:
  adapter: postgresql
  encoding: utf8
  database: myapp_test
  username: myuser
  host: localhost

production:
  adapter: postgresql
  encoding: utf8
  database: myapp_production

我在这个帖子中提到了一个解决方案:Repairing Postgresql after upgrading to OSX 10.7 Lion