无法使用作为启动守护程序运行的postgres运行psql

时间:2014-03-06 02:37:42

标签: postgresql-9.1 macports launchd

这是我第三次在新机器上设置Postgres(这次是OS X 10.9),第三次我遇到连接问题。

基本上,我正处于创建数据库集群的地步,可以使用以下命令启动postgres:

postgres -D /usr/local/pgsql/data

但我希望它作为启动守护进程在后台运行,所以我

sudo launchctl load -w /Library/LaunchDaemons/org.macports.postgresql91-server.plist

似乎守护程序已成功启动。但是当我输入psql时,我得到了同样的旧错误信息,我每次尝试设置Postgres时都会处理这个错误信息:

psql: 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"?

关于可能导致此问题的任何想法?

1 个答案:

答案 0 :(得分:1)

您运行的psql是Apple在Mac OS X中捆绑的旧版本,并添加到默认PATH中。使用Homebrew中的那个,修改路径或专门输入路径。

或者,通过覆盖默认套接字目录显式连接到服务器:

psql -h /tmp

另见:

<强>更新

在这种情况下,看起来服务器真的没有启动。检查数据目录(显然是/usr/local/pgsql/data)的权限,并检查Console.app日志中是否有来自launchd的相关消息。

<强>更新

您必须修改权限,以便postgres用户(或postgres_,具体取决于您的安装方式)拥有所有权。检查launchd配置文件以查看它运行的用户,并选择sudo chown -R postgres / usr / local / pgsql / data来更改所有权。用postgres_替换postgres,如果这是你的launchd配置所说的