postgresql port confusion 5433或5432?

前端之家收集整理的这篇文章主要介绍了postgresql port confusion 5433或5432?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经在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,不能提供更多的细节在那一边没有花费更多的时间比目前可用。

猜你在找的Postgre SQL相关文章