gpt4 book ai didi

macos - PostgreSQL Mountain Lion 套接字问题

转载 作者:行者123 更新时间:2023-11-29 11:09:15 27 4
gpt4 key购买 nike

我一直在尝试在我的系统(OSX 10.8,全新安装)上设置 PostgreSQL,但我在使用 psqlcreatedb 时遇到了麻烦,等。我尝试了各种解决方案,但似乎都没有用。

安装成功,我继续使用以下方法修复已知套接字问题:

mkdir /var/pgsql_socket 
sudo chown $USER /var/pgsql_socket

然后我编辑了postgresql.conf,将unix_socket_directory设置为

unix_socket_directory = '/var/pgsql_socket'

并重新启动 Pg。

这显然应该已经解决了套接字问题,但我仍然得到:

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

此外,我已经检查了服务器的状态,它似乎正在运行,但我仍然得到“没有这样的文件或目录”

有什么想法吗?

最佳答案

根据错误信息,$PATH中最先出现的psql命令将/tmp作为硬编码的默认unix套接字目录。

因为实际的目录实际上是 /var/pgsql_socket,所以你应该明确地告诉它而不是依赖默认值:

$ psql -h /var/pgsql_socket [other options]

这同样适用于其他客户端命令,如 createdbdropdbcreateuser...

如果不想每次都指定-h,可以放到PGHOST环境变量中。

有些人还通过使用到 localhost 的 TCP 连接而不是使用 Unix 套接字目录来解决这个问题。

这个问题的根本原因是在 Mac OS X 上安装 PostgreSQL 后,系统最终有两个不同的 postgres 客户端集实例(libpq 库,psql 和其他相关实用程序),一个与 MacOS 捆绑在一起,另一个随 PostgreSQL 安装程序一起提供。

因此,另一种方法是更改​​您的 $PATH,以便在安装系统之前选择与 PostgreSQL 一起安装的 psql(大概是 /usr/bin/psql).

关于macos - PostgreSQL Mountain Lion 套接字问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12032585/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com