为啥 Brew 安装的 postgres 看这里?

Posted

技术标签:

【中文标题】为啥 Brew 安装的 postgres 看这里?【英文标题】:Why is Brew installed postgres looking here?为什么 Brew 安装的 postgres 看这里? 【发布时间】:2013-04-23 02:27:58 【问题描述】:

当我在 postgresql.conf 中指定 /var/pgsql_socket (unix_socket_directory = '/var/pgsql_socket') 时,为什么 brew 安装的 postgres 会寻找 /tmp/.s.PGSQL.5432

安装成功。我可以成功启动和停止 Pg。

我的PATHPGHOST 环境变量似乎设置正确,但是当我尝试psql 时,我无法连接?

PATH="/usr/local/bin:$PATH"
PGHOST="/var/pgsql_socket"

有什么想法吗?我已经阅读了 1000 篇帖子,但似乎没有任何内容适合我的情况并提供解决方法?

【问题讨论】:

【参考方案1】:

更改postgresql.conf 中的unix_socket_directory 只会影响服务器放置套接字目录的位置。 postgresql.conf 不被客户端读取,并且客户端在可以连接之前无法向服务器询问设置,因此鸡与蛋的问题会阻止客户端询问服务器如何连接。

您需要告诉psql 套接字目录在哪里。看来您已经使用pghost 完成了此操作,所以我猜您还没有导出环境变量:

export PGHOST="/var/pgsql_socket"

psql -h /var/pgsql_socket

【讨论】:

你可能是对的;我在我的 .bash_profile 中设置 PGHOST,PGHOST="blah blah",但没有像您指出的那样导出它,尽管如果我从命令行执行 $ echo $PGHOST,“/var/pgsql_socket”会正确显示。我还不是(显然)unix 大师 :( 就是这样!我搜索了 100 篇没有人深入研究过 n00b 级别的帖子,谢谢 :)

以上是关于为啥 Brew 安装的 postgres 看这里?的主要内容,如果未能解决你的问题,请参考以下文章

从 brew upgrade postgresql 损坏 psql

Postgres 不创建角色

Homebrew(brew)安装MySQL成功后无法登录

无法混合ecto.create,角色'postgres'不存在[重复]

brew安装nginx及其使用

Mac os下安装brew