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

postgresql port confusion 5433或5432?

发布时间:2020-12-13 16:53:13 所属栏目:百科 来源:网络整理
导读:我已经在OSX上安装了postgresql。当我运行psql,我得到 $ psqlpsql: 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.5433"? 但是,从/ etc / serv
我已经在OSX上安装了postgresql。当我运行psql,我得到
$ psql
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.5433"?

但是,从/ etc / services

postgresql      5432/udp    # PostgreSQL Database
postgresql      5432/tcp    # PostgreSQL Database
#                          Tom Lane <tgl@sss.pgh.pa.us>
pyrrho          5433/tcp    # Pyrrho DBMS
pyrrho          5433/udp    # Pyrrho DBMS

5433被pyrrho占据,5432被赋予pg。我可以连接

psql -p 5432

但为什么psql认为它是5433,我如何使psql在正确的地方看起来默认?

/ etc / services只是建议,它是一个着名的港口的列表。这并不意味着任何东西实际上在该端口上运行,或者命名服务将在该端口上运行。

在PostgreSQL的情况下,通常使用端口5432(如果可用)。如果不是,大多数安装程序将选择下一个空闲端口,通常为5433。

您可以使用netstat工具(在OS X,Windows和Linux上可用,命令行语法在所有三个中都有所不同)可以看到实际运行的是什么。

这在Mac OS X系统上由不同的PostgreSQL软件包 – 苹果的PostgreSQL内置于操作系统,Postgres.app,Homebrew,Macports,EnterpriseDB安装程序等等的可怕混乱进一步复杂。

发生的事情是,用户安装Pg并从一个包装启动服务器,但使用来自不同包装的psql和libpq客户端。通常,这发生在他们运行Postgres.app或homebrew Pg,并与操作系统附带的psql连接。不仅这些有时具有不同的默认端口,但是Mac OS X附带的Pg具有不同的默认unix套接字路径,因此即使服务器在同一端口上运行,也不会侦听同一个unix套接字。

大多数Mac用户只需使用tcp / ip与psql -h localhost解决此问题。您还可以指定端口(如果需要),例如psql -h localhost -p 5433.您可能有多个PostgreSQL实例运行,请确保使用select version()和SHOW data_directory;连接到正确的端口。

你也可以指定一个unix套接字目录;检查要连接的PostgreSQL实例的unix_socket_directories设置,并使用psql -h,egpsql -h / tmp指定。

一个更清洁的解决方案是更正您的系统PATH,以便与您实际运行的PostgreSQL相关的psql和libpq是在PATH上首先找到的。其详细信息取决于您的Mac OS X版本和您安装的Pg包。我不使用Mac,不能提供更多的细节在那一边没有花费更多的时间比目前可用。

(编辑:李大同)

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

    推荐文章
      热点阅读