像其他一些人一样,当我在我的项目中运行rake :migrate,或者甚至尝试为我的Ruby on Rails 3.2应用程序执行大多数数据库任务时,我也会收到这个错误。
PGError (无法连接到服务器:没有这样的文件或目录。服务器是否在本地运行并接受Unix域套接字"/tmp/.s.PGSQL.5432“上的连接?
我很久以前就用Homebrew安装了PostgreSQL,最近在尝试安装MongoDB之后,我的PostgreSQL安装就再也不一样了。我运行的是OS:X v10.6雪豹。
出了什么问题,我如何更好地了解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,以便任何在临时路径中查找的内容都能找到真正的路径,如果这有意义的话。
在这个链接中,我发现了更多可以尝试的东西,特别是按照上面的方法执行符号链接,。我仍然希望有人能对在OS/X上安装PostgreSQL背后的概念做一个像样的解释,以及为什么这一切都很困难。
有助于故障排除的最新见解:
$ which psql // This tells you which PostgreSQL you are using when you run $ psql.
然后运行:
$ echo $PATH
需要考虑的关键问题是:
确保您要运行的PostgreSQL副本的路径条目位于OS/X系统的PostgreSQL路径之前。
这是一个核心需求,它决定运行哪个PostgreSQL,也是我被告知导致大多数这些问题的原因。
发布于 2014-02-25 21:24:19
检查postgres目录中是否没有postmaster.pid,可能是/usr/local/var/postgres/
删除它并启动服务器。
Check - https://github.com/mperham/lunchy是一个很棒的launchctl包装器。
发布于 2015-01-05 22:26:52
对我来说,这是可行的
rm /usr/local/var/postgres/postmaster.pid
发布于 2013-01-30 05:11:32
如果你使用的是OS X,"Postgres.app“是一个更好的补丁
修复方法如下:
停止database
cd /var
sudo rm -r pgsql_socket
sudo ln -s /tmp pgsql_socket
chown _postgres:_postgres pgsql_socket
有关更多信息,请访问"postgresql 9.0.3. on Lion Dev Preview 1“。
https://stackoverflow.com/questions/12472988
复制相似问题