我知道 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