使用PSQL命令查找主机名和端口

jam*_*tha 120 postgresql psql

我有PSQL运行,并试图让perl应用程序连接到数据库.是否有命令查找运行数据库的当前端口和主机?

a_h*_*ame 199

SELECT *
FROM pg_settings
WHERE name = 'port';
Run Code Online (Sandbox Code Playgroud)

  • 如果您在同一群集中有多个服务器,这不起作用,不幸的是...... (2认同)
  • 这实际上为您提供了端口号而不是服务器主机. (2认同)
  • @hd1:还有?问题是(也是)如何获取端口号。这就是查询返回的内容。 (2认同)
  • 是的,但是如果您无法连接到数据库,则无法执行该操作:P (2认同)

Kha*_*ino 110

此命令将为您提供postgres端口号

 \conninfo
Run Code Online (Sandbox Code Playgroud)

如果postgres在Linux服务器上运行,您还可以使用以下命令

sudo netstat -plunt |grep postgres
Run Code Online (Sandbox Code Playgroud)

或者(如果它是postmaster)

sudo netstat -plunt |grep postmaster
Run Code Online (Sandbox Code Playgroud)

你会看到类似的东西

tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      140/postgres
tcp6       0      0 ::1:5432                :::*                    LISTEN      140/postgres
Run Code Online (Sandbox Code Playgroud)

在这种情况下,端口号是5432,这也是默认端口号

学分链接

  • 这是正确的答案.选择的答案是正确的,但与问题无关. (4认同)

Bra*_*och 49

默认的PostgreSQL端口是5432.数据库运行的主机应该由您的托管服务提供商提供; 我想如果没有指定它将与Web服务器是同一主机.通常,这将配置为localhost,假设您的Web服务器和数据库服务器位于同一主机上.

  • 这实际上并不能回答问题。 (55认同)
  • @sk 阅读上下文。OP 不知道他们的 postgres 数据库的主机和端口。他们可以使用基本的“psql”命令进行连接,这意味着“localhost:5432”。除非有人对环境变量/别名/等很聪明。十年后我不喜欢我的答案,但是[解决 x](http://xyproblem.info/) 而不是 y 完全没问题,在这种情况下已经帮助了数百人。 (2认同)

Kaa*_*rel 41

select inet_server_addr(); 为您提供服务器的IP地址.

  • 我没有得到任何东西:```$ postgres = #select inet_server_addr(); inet_server_addr ------------------(1行)``` (7认同)
  • 遗憾的是,如果您通过ssh代理连接,这不会给出"实时"主机名 - 我一直得到"127.0.0.1" (2认同)

And*_*ida 15

select inet_server_port(); 为您提供服务器的端口.

  • 在bluehost上,此查询返回一个空白字段,而实际上端口是5432.此查询并不总是返回端口号. (3认同)

ger*_*rdw 10

select inet_server_addr( ), inet_server_port( );
Run Code Online (Sandbox Code Playgroud)

  • 这与 Kaarel Kitsemets 的 [answer](http://stackoverflow.com/a/12454501/369450) 和 Andromida 的 [answer](http://stackoverflow.com/a/22986571/369450) 有何不同? (2认同)

Vin*_*hra 10

从终端您可以执行以下操作:

\conninfo

我建议使用以下方法阅读有关所有命令的详尽列表的文档:

\?


bon*_*igo 9

这是非sql方法.有关图像本身的说明.选择要查找其信息的服务器,然后按照步骤操作.

在此输入图像描述


Int*_*tra 8

您可以在 psql 中使用该命令,\conninfo 您将获得You are connected to database "your_database" as user "user_name" on host "host_name" at port "port_number".


Eri*_*ski 7

postgresql端口在您的postgresql.conf文件中定义.

对我来说,在Ubuntu 14.04中它是: /etc/postgresql/9.3/main/postgresql.conf

里面有一条线:

port = 5432
Run Code Online (Sandbox Code Playgroud)

更改数量需要重启postgresql才能生效.


小智 7

从终端,您可以简单地执行“postgres 列表集群”:

pg_lsclusters
Run Code Online (Sandbox Code Playgroud)

它将返回 Postgres 版本号、集群名称、端口、状态、所有者以及数据目录和日志文件的位置。


A-S*_*ani 7

要查找端口号,您可以运行此命令(假设您位于本地主机)

select setting from pg_settings where name='port';
Run Code Online (Sandbox Code Playgroud)