加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

postgresql – 为什么psql无法连接到服务器?

发布时间:2020-12-13 16:30:32 所属栏目:百科 来源:网络整理
导读:我键入psql,我得到这个: psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"? 我用过sudo netstat -nlp | grep 5432看到
我键入psql,我得到这个:
psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

我用过sudo netstat -nlp | grep 5432看到状态但没有显示.
我在网上搜索,有人告诉我修改pg_hba.conf但我找不到这个文件.我也试过这个命令lud -s /tmp/.s.PGSQL.5432 /var/run/postgresql/.s.PGSQL.5432.它不能工作.

该错误指出psql实用程序找不到要连接到数据库服务器的套接字.您没有在后台运行数据库服务,或者套接字位于其他位置,或者可能需要修复pg_hba.conf.

步骤1:验证数据库是否正在运行

该命令可能因操作系统而异.但是在大多数* ix系统上,以下都可以工作,它将在所有正在运行的进程中搜索postgres

ps -ef | grep postgres

在我的系统上,mac osx,这会吐出来

501   408     1   0  2Jul15 ??         0:21.63 /usr/local/opt/postgresql/bin/postgres -D /usr/local/var/postgres -r /usr/local/var/postgres/server.log

最后一列显示用于启动服务器的命令和选项.

您可以使用以下命令查看可用于启动postgres服务器的所有选项.

man postgres

从那里,你会看到选项-D和-r分别是datadir& logfilename.

第2步:如果postgres服务正在运行

使用find来搜索套接字的位置,该位置应位于/ tmp中的某个位置

sudo find /tmp/ -name .s.PGSQL.5432

如果postgres正在运行并接受套接字连接,则上面应该告诉您套接字的位置.在我的机器上,结果是:

/tmp/.s.PGSQL.5432

然后,尝试使用此文件的位置通过psql连接,例如.

psql -h /tmp/ dbname

第3步:如果服务正在运行但您没有看到套接字

如果找不到套接字,但看到该服务正在运行,请验证pg_hba.conf文件是否允许本地套接字.

浏览到datadir,您应该找到pg_hba.conf文件.

默认情况下,在文件底部附近,您应看到以下行:

# "local" is for Unix domain socket connections only
local       all       all       trust

如果您没有看到它,则可以修改该文件,然后重新启动postgres服务.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读