Menentukan port PostgreSQL

12

Saya tahu bahwa secara default PostgreSQL mendengarkan pada port 5432, tetapi apa perintah untuk benar-benar menentukan port PostgreSQL?

Konfigurasi: Ubuntu 9.10 dengan PostgreSQL 8.4

Matthew Rankin
sumber

Jawaban:

26

lsof dan nmap adalah solusi, tetapi tidak diinstal secara default. Yang Anda inginkan adalah netstat (8).

sudo netstat -plunt |grep postgres
PTman
sumber
Linux seharusnya bermigrasi jauh dari rute / ifconfig / netstat. Perintah modern yang setara adalah ss -plung|grep postgres(catatan, bendera yang sama)
ptman
1
Tidak ada gbendera lagi untuk ssperintah. Coba:ss -pa |grep postgresql
GrayedFox
1
@GrayedFox terima kasih atas pembaruannya, tetapi bagi saya yang memberikan nama port, bukan nomornya, jadi saya pikir ss -pan |grep postgreslebih cocok
ptman
6

Utilitas PostgreSQL pg_lsclusters memperlihatkan informasi tentang konfigurasi dan status semua cluster, termasuk nomor port.

$ 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

Ini juga memiliki keuntungan karena tidak memerlukan hak akses 'sudo' untuk dijalankan.

Pada sistem Debian dan Ubuntu, perintah pg_lsclusters disediakan oleh paket postgresql-common, yang harus diinstal secara default dengan server postgresql.

Dan Stangel
sumber
3
Perhatikan bahwa itu pg_lsclustersadalah Ubuntu-isme, dan bukan perintah Postgres standar. Ini akan berfungsi untuk kasus ini, tetapi bukan solusi tujuan umum ...
voretaq7
2

Jika Anda ingin melakukannya dari dalam database, lakukan saja "SHOW port". Tapi itu mengasumsikan Anda sudah bisa terhubung ke sana, setidaknya secara lokal ...

Magnus Hagander
sumber
1

Jika Anda mencari di komputer lokal, saya akan menggunakan perintah lsof untuk memeriksa portgres post yang digunakan

lsof -p <postgres_process_id>
Dominik
sumber
Anda mungkin harus menjalankan ini sebagai root.
Michael Mior
1

Saya memiliki mesin dengan beberapa instance postgres yang berjalan - dan saya juga memiliki masalah dalam mencoba mencocokkan database yang benar dengan setiap port. Saya cenderung melakukan:

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

Dan kemudian, untuk setiap instance yang dikembalikan mencari direktori ( -Dargumen) dan:

$ sudo grep port $DIR/postgresql.conf
Joe H.
sumber
0

Inilah satu solusi yang saya temukan:

sudo apt-get install nmap
sudo nmap localhost | grep postgresql

Jika Anda ingin mencari mesin non-lokal, ubah saja localhostke alamat IP server.

Matthew Rankin
sumber