当前位置: 首页 > 知识库问答 >
问题:

Mountain Lion (OS X Server)中缺少套接字文件“/var/pgsql _ socket/. s . pgsql . 5432”

秦炜
2023-03-14

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

当我尝试执行任何类型的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 Enterprise Support(没有协议),我被告知我的问题必须由开发人员解决,这将花费695美元。

我有一个网站现在关闭了,因为我无法重建它。此时我不知道该在哪里寻求帮助。我会继续在网上寻找,看看是否能找到一些东西。但是我希望有人能尽快给我一个答案,这样我就可以重建我的数据库

更新时间:2012年12月13日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

共有3个答案

郭盛
2023-03-14

我能够通过简单地填写PostgreSQL主机地址的127.0.0.1来解决,而不是将其留空。(Django示例)

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'database_name',
        'USER': 'database_user',
        'PASSWORD': 'pass',
        'HOST': '127.0.0.1',
        'PORT': '',
        }
}
汪翰墨
2023-03-14

尝试在控制台中粘贴:

$ mkdir /var/pgsql_socket/ 

$ ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/
吴腾
2023-03-14

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

export PGHOST=localhost

这是因为:

如果省略主机名,psql将通过Unix域套接字连接到本地主机上的服务器,或通过TCP/IP连接到没有Unix域套接字的机器上的本地主机。

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

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

 类似资料:
  • 我刚升级我的MacMini服务器从狮子服务器到山狮使用OS X服务器。我在使用PostgreSQL时遇到了与去年第一次安装Lion Server时相同的问题。 当我尝试执行任何类型的PostgreSQL终端命令时,我会得到以下臭名昭著的错误消息,这些年来很多人都得到了这种消息: 当我尝试更改_postgres的密码时,我得到了错误。我尝试了几个命令,但得到了相同的错误。我刚刚重新启动了我的服务器,

  • 如何修复此错误? psql:错误:无法连接到服务器:没有这样的文件或目录是在本地运行并在Unix域套接字上接受连接的服务器“/var/run/postgresql/.s.PGSQL.5432”? 我们使用Docker、Postgres12和Wercker。在Wercker中运行此命令时,无法创建数据库。但是我们可以在我本地的Ubuntu环境中创建它。

  • 我有一个托管在Engine Yard Cloud上的rails应用程序。部署后,我收到一个错误: 进程postgresql:POSTGRES_CONNECTION关键: DB'postgres'无法连接到服务器:连接拒绝服务器是否在本地运行并接受Unix域套接字'/var/run/postgresql/. s上的连接。PGSQL.5432' 在此错误之后,带有应用程序的实例变得不可访问,需要重新加

  • 问题内容: 在从openni编译演示时,我偶然发现了此错误: 我在Mac上执行此操作。我最好的猜测是该文件不在我的java.library.path中 我现在的问题是:这个猜测正确吗,以及如何在netbeans中添加到java.library.path中。 提前Thx 问题答案: 将此添加到projects属性的VM选项中:-Djava.library.path = / Users / olivi

  • 问题内容: 我的问题开始于我无法以root用户身份登录mysql安装。我试图在不打开密码的情况下运行mysql …但是每当我运行命令时 我永远也回不了提示。我试图按照以下说明恢复密码。 屏幕如下所示: 并且没有提示您开始输入SQL命令来重置密码。 当我按+ 杀死它时,会收到以下消息: 如果重试该命令并将其保留足够长的时间,则会收到以下一系列消息: 但是,如果我尝试通过以下方式以root用户身份登录

  • 问题内容: 这可能是一件非常简单的事情。我是python的新手,所以不要钉死我。 上面的命令给了我: 我唯一的进口是 问题答案: 如果您不理解错误消息,则表示您引用的是当时不可用的名称。您的代码段可能缺少导入语句。 出于可移植性的原因,套接字模块可能不提供SO_BINDTODEVICE。如果您完全确定自己在支持它的Linux上运行,请尝试用它的数字值替换它: 或对于python 3: