确定 PostgreSQL 的端口

确定 PostgreSQL 的端口

我知道 PostgreSQL 默认监听端口 5432,但是实际确定 PostgreSQL 端口的命令是什么?

配置:Ubuntu 9.10 和 PostgreSQL 8.4

答案1

lsof 和 nmap 是解决方案,但它们默认未安装。您需要的是 netstat(8)。

sudo netstat -plunt |grep postgres

如果你没有 netstat,但有 ss

sudo ss -pln |grep postgres

答案2

PostgreSQL 实用程序 pg_lsclusters 显示有关所有集群的配置和状态的信息,包括端口号。

$ pg_lsclusters
Version Cluster   Port Status Owner    Data directory                     Log file
8.4     main      5433 online postgres /var/lib/postgresql/8.4/main       /var/log/postgresql/postgresql-8.4-main.log

这还具有不需要“sudo”权限即可运行的优点。

在 Debian 和 Ubuntu 系统上,pg_lsclusters 命令由包 postgresql-common 提供,该包应默认与 postgresql 服务器一起安装。

答案3

如果您想从数据库内部执行此操作,只需执行“SHOW port”。但这假设您至少能够本地连接到它...

答案4

我有一台机器正在运行多个 postgres 实例——因此我也遇到了尝试将正确的数据库与每个端口匹配的问题。我倾向于这样做:

$ ps aux | grep  postgres | grep -v 'postgres:'

然后,对于返回的每个实例查找目录(-D参数)并:

$ sudo grep port $DIR/postgresql.conf

相关内容