Matthew Rankin Asked: 2010-03-02 05:40:01 +0800 CST2010-03-02 05:40:01 +0800 CST 2010-03-02 05:40:01 +0800 CST 确定 PostgreSQL 的端口 772 我知道默认情况下 PostgreSQL 侦听端口 5432,但实际确定 PostgreSQL 端口的命令是什么? 配置: Ubuntu 9.10 和 PostgreSQL 8.4 ubuntu port postgresql ubuntu-9.10 6 个回答 Voted Best Answer ptman 2010-03-02T07:25:43+08:002010-03-02T07:25:43+08:00 lsof 和 nmap 是解决方案,但默认情况下未安装它们。你想要的是 netstat(8)。 sudo netstat -plunt |grep postgres Dan Stangel 2012-07-13T10:43:54+08:002012-07-13T10:43:54+08:00 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 服务器上。 Magnus Hagander 2010-03-02T06:34:34+08:002010-03-02T06:34:34+08:00 如果您想从数据库内部执行此操作,只需执行“SHOW port”即可。但这假设你已经能够连接到它,至少在本地...... Dominik 2010-03-02T05:50:03+08:002010-03-02T05:50:03+08:00 如果您在本地机器上搜索,我会使用 lsof 命令检查 postgresql 正在使用的端口 lsof -p <postgres_process_id> Joe H. 2010-03-02T06:04:04+08:002010-03-02T06:04:04+08:00 我有运行多个 postgres 实例的机器——所以我也有尝试将正确的数据库与每个端口匹配的问题。我倾向于这样做: $ ps aux | grep postgres | grep -v 'postgres:' 然后,对于每个返回的实例,查找目录(-D参数)并: $ sudo grep port $DIR/postgresql.conf Matthew Rankin 2010-03-02T05:41:18+08:002010-03-02T05:41:18+08:00 这是我找到的一种解决方案: sudo apt-get install nmap sudo nmap localhost | grep postgresql 如果要搜索非本地机器,只需更改localhost服务器的 IP 地址即可。
lsof 和 nmap 是解决方案,但默认情况下未安装它们。你想要的是 netstat(8)。
PostgreSQL 实用程序 pg_lsclusters 显示有关所有集群的配置和状态的信息,包括端口号。
这还具有不需要“sudo”权限即可运行的优点。
在 Debian 和 Ubuntu 系统上,pg_lsclusters 命令由包 postgresql-common 提供,它应该默认安装在 postgresql 服务器上。
如果您想从数据库内部执行此操作,只需执行“SHOW port”即可。但这假设你已经能够连接到它,至少在本地......
如果您在本地机器上搜索,我会使用 lsof 命令检查 postgresql 正在使用的端口
我有运行多个 postgres 实例的机器——所以我也有尝试将正确的数据库与每个端口匹配的问题。我倾向于这样做:
然后,对于每个返回的实例,查找目录(
-D
参数)并:这是我找到的一种解决方案:
如果要搜索非本地机器,只需更改
localhost
服务器的 IP 地址即可。