尝试在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文件),但我得到的响应是“无法执行二进制文件”。
答案 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'