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


150

我正在运行PSQL,并且正在尝试使Perl应用程序连接到数据库。是否有命令查找数据库正在运行的当前端口和主机?

Answers:


57

PostgreSQL的默认端口是5432。数据库所运行的主机应该由您的主机提供商提供;我猜如果未指定,它将与Web服务器位于同一主机。通常,假设您的Web服务器和数据库服务器位于同一主机上,则将其配置为localhost。


我也遇到了这个问题,并且尝试了5433端口,并且它正在工作
Jonny Manowar

5
这实际上并不能回答问题。
sk

@sk阅读上下文。OP不知道其postgres数据库的主机和端口。它们可以与基本psql命令连接,因此意味着localhost:5432。除非有人对env vars / aliases / etc有所了解。十年后,我不喜欢我的回答,但是解决x而不是y完全可以,在这种情况下,已经帮助了数百人。
布拉德·科赫

225
SELECT *
FROM pg_settings
WHERE name = 'port';

2
不幸的是,如果您在同一群集中有多个服务器,则此方法不起作用...
Vitor Baptista 2013年

2
实际上,这给了您端口号而不是服务器主机。
hd1

2
@ hd1:然后呢?问题是(也是)如何获取端口号。这就是查询返回的内容。
a_horse_with_no_name

是的,但是如果您无法连接到数据库,则无法执行该命令:P
jaydel

136

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

 \conninfo

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

sudo netstat -plunt |grep postgres

或(如果是邮政局长)

sudo netstat -plunt |grep postmaster

你会看到类似的东西

tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      140/postgres
tcp6       0      0 ::1:5432                :::*                    LISTEN      140/postgres

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

学分链接


1
它即将作为5432的邮政局长。–基于
代码的

4
这是正确的答案。选择的答案是正确的,但与问题无关。
路易斯·马丁斯

42

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


2
遗憾的是,如果您通过ssh代理进行连接,这不会提供“实时”主机名-我一直收到“ 127.0.0.1”的信息
Andrew Wolfe 2015年

8
我什么也没得到:$postgres=# select inet_server_addr(); inet_server_addr ------------------ (1 row)
trex

没有给出主机名
Kumar Vaibhav '18

15

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


3
在bluehost上,实际上端口为5432时,此查询返回空白字段。此查询并不总是返回端口号。
Eric Leschinski 2015年


12

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

在此处输入图片说明


9

postgresql.conf文件中定义了postgresql端口。

对于我而言,在Ubuntu 14.04中是: /etc/postgresql/9.3/main/postgresql.conf

里面有一行:

port = 5432

更改那里的数字要求重新启动postgresql才能生效。


5

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


3

在终端上,您可以执行以下操作:

\ conninfo

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

\?


0

转到“终端”,然后键入

service postgres status

在结果中,您可以获得端口详细信息运行postgres详细信息

就我而言,它在端口“ 5432”上运行(默认)。
我正在使用CentOS 7.希望有帮助。


0
SELECT CURRENT_USER usr, :'HOST' host, inet_server_port() port;

这使用psql内置的HOST变量,在此处记录

还有postgres系统信息功能,在此处记录


如果您在本地连接,HOST将是UNIX域套接字所在的目录,例如/tmp
主教

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.