postgresql - Mountain Lion 中缺少套接字文件 "/var/pgsql_socket/.s.PGSQL.5432"(OS X 服务器)

标签 postgresql osx-mountain-lion postgresql-9.2 osx-server

我刚刚使用 OS X Server 将我的 MacMini Server 从 Lion Server 升级到 Mountain Lion。我在去年第一次安装 Lion Server 时遇到了与 PostgreSQL 相同的问题。

当我尝试执行任何类型的 PostgreSQL 终端命令时,我收到以下臭名昭著的错误消息,多年来许多人都收到过:

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

当我收到错误时,我正在尝试更改 _postgres 的密码。我尝试了几个命令,但得到了同样的错误。我刚刚重新启动了我的服务器,但没有运气。我以 root 身份登录查看/var/pgsql_socket,文件夹是空的。文件夹/var/pgsql_socket_alt 也是空的。

我在网上查过这个。但是,我阅读过的几乎所有解决方案(包括 Stack Overflow 上的解决方案)都建议删除并重新安装 PostgreSQL。我不知道,但这似乎不是一个合理的选择,因为服务器应用程序上的几个选项使用 PostgreSQL。我联系了 Apple 企业支持(未达成协议(protocol)),我被告知我的问题必须由开发人员解决,费用为 695 美元。

我的网站现在无法重建,因此无法正常运行。我现在不知道该去哪里寻求帮助。我将继续在线查看是否可以找到一些东西。不过我希望有人能尽快给我一个答案,这样我就可以重建我的数据库。

更新:12/13/2012 15:33 GMT-6

这是我对 ps auwx|grep postg 的输出:

_postgres      28123   0.0  0.1  2479696   7724   ??  Ss    3:01PM   0:00.04 /Applications/Server.app/Contents/ServerRoot/usr/bin/postgres_real -D /Library/Server/PostgreSQL For Server Services/Data -c listen_addresses= -c log_connections=on -c log_directory=/Library/Logs/PostgreSQL -c log_filename=PostgreSQL_Server_Services.log -c log_line_prefix=%t  -c log_lock_waits=on -c log_statement=ddl -c logging_collector=on -c unix_socket_directory=/Library/Server/PostgreSQL For Server Services/Socket -c unix_socket_group=_postgres -c unix_socket_permissions=0770
server1        28216   0.0  0.0  2432768    620 s000  R+    3:02PM   0:00.00 grep postg
_postgres      28138   0.0  0.0  2439388    752   ??  Ss    3:01PM   0:00.01 postgres: stats collector process                           
_postgres      28137   0.0  0.0  2479828   1968   ??  Ss    3:01PM   0:00.00 postgres: autovacuum launcher process                           
_postgres      28136   0.0  0.0  2479696    544   ??  Ss    3:01PM   0:00.00 postgres: wal writer process                           
_postgres      28135   0.0  0.0  2479696    732   ??  Ss    3:01PM   0:00.01 postgres: writer process                           
_postgres      28134   0.0  0.0  2479696    592   ??  Ss    3:01PM   0:00.00 postgres: checkpointer process                           
_postgres      28131   0.0  0.0  2439388    368   ??  Ss    3:01PM   0:00.00 postgres: logger process 

更新:12/13/2012 18:10 GMT-6

经过大量的网络搜索,找到了这个视频。我能够让 PostgreSQL 工作并消除错误。我可以使用 pgadmin 和 phppgadmin 进行连接。由于纯粹的挫败感,我正要回到 Lion Server。现在我不需要了。

http://www.youtube.com/watch?v=y1c7WFMMkZ4

最佳答案

我能够将以下内容添加到我的 .bash_profile 中以防止错误:

export PGHOST=localhost

这有效 because :

If you omit the host name, psql will connect via a Unix-domain socket to a server on the local host, or via TCP/IP to localhost on machines that don't have Unix-domain sockets.

您的操作系统支持 Unix 域套接字,但 psql 需要的 PostgreSQL 的 Unix 套接字要么不存在,要么位于与预期不同的位置。

将主机名显式指定为 localhost 会强制 psql 使用 TCP/IP。设置环境变量 PGHOST 是实现这一目标的方法之一。它记录在 psql's manual 中.

关于postgresql - Mountain Lion 中缺少套接字文件 "/var/pgsql_socket/.s.PGSQL.5432"(OS X 服务器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13868730/

相关文章:

postgresql - 如何在 PostgreSQL 中禁止并行插入?

python - 如何在 psycopg2 查询中返回 json?

postgresql - 如何访问 pgadmin 数据库设计器?

sql - 为什么 SELECT * WHERE id=1 ORDERBY at LIMIT 1 不像简单的二进制搜索那样在 O(log n) 中执行?

mac-app-store - Mac OS 山狮 : Is it possible to code sign applications for Gatekeeper without paying Apple for a developer membership?

sql - PostgreSQL,在存储过程中存储多个变量

postgresql - 如何使用 sql 或 phpPgAdmin 更改 PostgreSQL 数据库的数据库编码?

ruby-on-rails - 如何使用 postgresql 和 ruby​​ on rails 更新类型数组的列

php - MAMP 上的 Gearman PECL 扩展

c++ - 为什么在我键入名称时我的可执行文件不会运行? (Mac OS X 山狮) Mac OS X 10.8.2