PostgreSQL 服务器发出 unix 域套接字
Posted
技术标签:
【中文标题】PostgreSQL 服务器发出 unix 域套接字【英文标题】:PostgreSQL server issue unix domain socket 【发布时间】:2013-09-08 23:01:06 【问题描述】:我按照以下步骤使用 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】:您显然正在运行默认的 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 ...
【讨论】:
以上是关于PostgreSQL 服务器发出 unix 域套接字的主要内容,如果未能解决你的问题,请参考以下文章
Rails 6 无法连接到 AWS Elastic Beanstalk 预置的 RDS。 Unix 域套接字“/var/run/postgresql/.s.PGSQL.5432”