2013-01-20 56 views
1

使用的Postgres 9.2.2,我不断收到这个错误,当我尝试启动轨道服务器或运行psql的Postgres无法连接到服务器上的Unix域套接字5432

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 

如果我运行此命令:

​​

它将连接到插座....但它也要求我删除我的数据库,这是非常令人沮丧的。这似乎发生在我每次重新启动时。

使用

  • 的Postgres 9.2.2
  • 酿造
  • OSX山狮

我发现堆栈溢出类似的主题,但没有一个解决方案,似乎工作。

+0

这似乎是一个常见的问题上OSX,与升级&&包装有关。请参阅此处可能的答案:http://stackoverflow.com/a/8482546/905902顺便说一句:如果服务器不启动,它在日志中说什么? BTW2:你是否更换位置/目录? – wildplasser

+0

您可能想尝试http://postgresapp.com/ – house9

回答

3

拧紧它。 Heroku安装了Postgres.app。没有更多杂乱的问题。

1

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

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

test: 
    <<: *default 
    database: myapp_test 

要:

将溶液从改变database.yml文件

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

test: 
    <<: *default 
    database: myapp_test 

唯一的区别是 “主机” 行

+1

听起来像编译到客户端库并编译到服务器中的套接字路径的差异。将“host:localhost”设置为可以修复它,因为它将使用TCP/IP套接字,可能会将“host:/ path/to/socketdir”修复它,使用服务器的unix_socket_dir。 – araqnid

+0

@araqnid感谢您提供更深入的答案,我总是喜欢知道为什么我的修补程序实际上可行! – Neal

相关问题