Postgres服务器错误 - > PGError:无法连接到服务器

时间:2011-01-09 11:19:50

标签: ruby-on-rails database macos postgresql

尝试在localhost上启动rails应用程序时,我收到以下错误:

  

PGError(无法连接到服务器:没有这样的文件或目录       服务器是在本地运行还是接受       Unix域套接字“/tmp/.s.PGSQL.5432”上的连接?

根据我的阅读,听起来这很可能是连接到Postgres服务器的问题,并且可能表明它没有启动?

这一切都是在我尝试使用git进行第一次(yay noobs!)合并时开始的。发生冲突(与Rubymine workspace.xml文件有关),我开始打开冲突解决程序。然后似乎根本没有必要跟踪workspace.xml,所以我退出解决方案程序,打算在文件上运行“git rm --cached”。我认为在退出程序时出现了一些错误,我在重新启动文件之前重新启动,然后完成合并。在我重新启动机器之前,我的终端外壳没有正确打开的进一步证据表明某些东西被搞砸了。

现在,据我所知,合并中的一切都很顺利(无论如何,两个分支都存在微不足道的差异),但对于我的生活,我似乎无法摆脱这个PGError。如果它像启动服务器一样简单,那么我会非常喜欢如何做到这一点。

(其他上下文:OSx,rails 3,通过macports安装的posgresql83,pg gem)。

编辑 - 我一直在尝试启动服务器,但没有成功。例如,我试过:

pg_ctl start -D /opt/local/var/db/postgresql83/defaultdb

这似乎是数据的正确路径(它找到postgresql.conf文件),但我得到的响应是“无法执行二进制文件”。

3 个答案:

答案 0 :(得分:1)

  

并可能表示它未启动?

是的,听起来服务器没有在本地计算机上运行。

请参阅PostgreSQL手册中对此错误的描述:
http://www.postgresql.org/docs/8.3/static/server-start.html#CLIENT-CONNECTION-PROBLEMS

答案 1 :(得分:1)

尝试sudo port load postgresql83-server - 这应该适用于macports的最新8.3端口。

如果这不起作用,请尝试sudo port selfupdate; sudo port upgrade outdated,然后重试。

注意 - 这可能需要很长时间。

答案 2 :(得分:0)

要启动服务器,请尝试以下几行(调整pgsql版本#和logfile):

sudo su postgres -c '/opt/local/lib/postgresql84/bin/pg_ctl -D /opt/local/var/db/postgresql8/defaultdb -l /opt/local/var/log/postgresql84/postgres.log start'

停止服务器,

sudo su postgres -c '/opt/local/lib/postgresql84/bin/pg_ctl -D /opt/local/var/db/postgresql84/defaultdb stop'