I know that by default PostgreSQL listens on port 5432, but what is the command to actually determine PostgreSQL's port?
Configuration: Ubuntu 9.10 with PostgreSQL 8.4
Server Fault is a question and answer site for system and network administrators. It only takes a minute to sign up.
Sign up to join this communitylsof and nmap are solutions, but they're not installed by default. What you want is netstat(8).
sudo netstat -plunt |grep postgres
ss -plung|grep postgres
(note, same flags)
g
flag anymore for the ss
command. Try: ss -pa |grep postgresql
Jun 14, 2018 at 8:06
ss -pan |grep postgres
is more suitable
The PostgreSQL utility pg_lsclusters shows information about the configuration and status of all clusters, including the port number.
$ 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
This also has the advantage of not requiring 'sudo' privileges to run.
On Debian and Ubuntu systems, the pg_lsclusters command is provided by the package postgresql-common, which should be installed by default with the postgresql server.
pg_lsclusters
is an Ubuntu-ism, and is not a standard Postgres command. It will work for this case, but is not a general-purpose solution...
If you want to do it from inside the database, just do "SHOW port". But that assumes you've been able to connect to it, at least locally...
If you are searching on the local machine, I would use the lsof command to check for the port postgresql is using
lsof -p <postgres_process_id>
I have machines with multiple postgres instances running -- and so I also have the issue of trying to match up the correct database with each port. I tend to do:
$ ps aux | grep postgres | grep -v 'postgres:'
And then, for each of instances returned look for the directory (-D
argument) and:
$ sudo grep port $DIR/postgresql.conf
Here's one solution that I've found:
sudo apt-get install nmap
sudo nmap localhost | grep postgresql
If you're wanting to search a non-local machine, just change localhost
to the server's IP address.