像其他人一样,当我在项目中运行rake db:migrate或什至尝试为Ruby on Rails 3.2应用程序执行大多数数据库任务时,都会遇到此错误。
PGError(无法连接到服务器:没有这样的文件或目录。服务器是否在本地运行并且接受Unix域套接字“ /tmp/.s.PGSQL.5432”上的连接?
我很早以前就用Homebrew安装了PostgreSQL,最近尝试安装MongoDB之后,我的PostgreSQL安装从未如此。我正在运行OS X v10.6 Snow Leopard。
出了什么问题?如何更好地了解PostgreSQL是什么,应该在Mac上设置它?
到目前为止(我认为),这告诉我PostgreSQL没有运行(?)。
ps -aef|grep postgres (ruby-1.9.2-p320@jct-ana) (develop) ✗
501 17604 11329 0 0:00.00 ttys001 0:00.00 grep postgres
但这是否告诉我PostgreSQL正在运行?
✪ launchctl load -w /usr/local/Cellar/postgresql/9.1.4/homebrew.mxcl.postgresql.plist (ruby-1.9.2-p136)
homebrew.mxcl.postgresql: Already loaded
我该如何解决?我没看到什么?
PS:~/Library/LaunchAgents
包括两个PostgreSQL .plist文件。我不确定这是否相关。
org.postgresql.postgres.plist
homebrew.mxcl.postgresql.plist
我尝试了以下操作,并得到如下结果。
$ psql -p 5432 -h本地主机
psql: could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Connection refused
Is the server running on host "localhost" (::1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Connection refused
Is the server running on host "localhost" (fe80::1) and accepting
TCP/IP connections on port 5432?
我已经读过了,因为OS X在不同的地方安装了自己的PostgreSQL版本,而Homebrew在不同的地方安装了不同的版本,并且PostgreSQL命令在/ tmp /目录中查找,所以我已经读到了。您将需要在Stack Overflow上进行更多搜索,但是基本上,您是将PostgreSQL符号链接在一起的,以便在该tmp路径中查找的任何内容都能找到真实的路径(如果有的话)。
这是我在其中找到了更多尝试的链接,特别是按照上面的方法进行符号链接,Mac OSX Lion Postgres不接受/tmp/.s.PGSQL.5432上的连接。我仍然希望有人能对在OS X上安装PostgreSQL的概念以及它为什么这么难的问题做出恰当的解释。
最新的见解可帮助您进行故障排除:
$ which psql // This tells you which PostgreSQL you are using when you run $ psql.
然后运行:
$ echo $PATH
要考虑的关键是:
在OS X系统的PostgreSQL路径之前,请确保要运行COM的PostgreSQL副本的路径条目。
这是决定运行哪个PostgreSQL的核心要求,而我被告知会导致大多数这些问题。