Postgres无法连接到Unix域套接字5432上的服务器

时间:2013-01-20 18:08:24

标签: ruby-on-rails database ruby-on-rails-3 postgresql unix

使用Postgres 9.2.2,当我尝试启动rails服务器或运行psql时,我一直收到此错误

could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

此命令在运行时执行:

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

说服务器启动,但是当我去检查进程时,没有运行postgres进程

我的路径是正确的

$ which psql
/usr/local/bin/psql
$ which pg_ctl
/usr/local/bin/pg_ctl

如果我运行此命令:

initdb /usr/local/var/postgres -E utf8

它将连接到套接字....但它也需要我删除我的数据库,这是非常令人沮丧的。每次重新启动时都会发生这种情况。

使用

  • Postgres 9.2.2
  • 酿造
  • OSX Mountain Lion

我在堆栈溢出时发现了类似的线程,但没有一个解决方案似乎有效。

2 个答案:

答案 0 :(得分:3)

拧紧它。我刚刚安装了Heroku的Postgres.app。没有更混乱的问题。

答案 1 :(得分:1)

我看到这个问题再一次出现在实际安装了Postgres.app的人身上。虽然,目前还不清楚为什么他抛出这个错误,因为我之前从未见过Postgres.app。

解决方案是更改database.yml文件:

development: &default
  adapter: postgresql
  database: myapp_development
  encoding: utf8
  min_messages: warning
  pool: 5
  timeout: 5000

test:
  <<: *default
  database: myapp_test

要:

development: &default
  adapter: postgresql
  database: myapp_development
  encoding: utf8
  min_messages: warning
  pool: 5
  timeout: 5000
  host: localhost

test:
  <<: *default
  database: myapp_test

唯一不同的是“主机”行