PostgreSQL服务器问题unix域套接字

时间:2013-09-08 23:01:06

标签: sockets postgresql-9.2 unix-socket

我按照以下步骤使用Homebrew安装PostgreSQL(第一次使用Homebrew):http://dhilipsiva.blogspot.se/2013/02/install-postgresql-on-os-x-using.html

最后一步没有用。我认为它应该启动服务器。但是,我认为我成功创建了一个数据库集群,并按照官方文档(17.2和17.3)启动了数据库服务器:http://www.postgresql.org/docs/9.2/interactive/runtime.html

我的问题是,当我尝试在终端中使用createdb mydb创建数据库时,我收到消息:

createdb: could not connect to database postgres: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

我很困惑,因为这里抛出的很多概念(如套接字,路径变量等)对我来说都是新的。我也对Mac OS X中的目录结构感到困惑,因为我最近从Windows迁移过。如果有人能指出我正确的方向,那将非常感激。

更新 与往常一样,一旦发布,您就会找到答案。差不多:这篇文章中接受的答案让我得出结论,我的Unix域套接字(无论是什么)位于Postgres不期望的地方。

Can't get Postgres started

使用-h标志,它可以工作。所以问题是,如何配置Postgres以在正确的位置查找套接字?

1 个答案:

答案 0 :(得分:0)

您显然正在运行默认的OS X提供的PostgreSQL客户端,它希望Unix域套接字位于与Homebrew版本不同的位置。基本上,

/usr/bin/{createdb,psql,...} ---> /var/pgsql_socket/.s.PGSQL.5432
/usr/local/bin/{createdb,psql,...} ---> /tmp/.s.PGSQL.5432

因此,请确保您的路径设置正确,以便您拨打正确的路径。

或者,您可以像这样覆盖套接字位置:

createdb -h /tmp ...
相关问题