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,不能提供更多的细节在那一边没有花费更多的时间比目前可用。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |