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

Jawaban:


26

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

sudo netstat -plunt |grep postgres

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.


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 ...


1

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

lsof -p <postgres_process_id>

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

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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.