Xác định cổng của PostgreSQL


12

Tôi biết rằng theo mặc định PostgreSQL lắng nghe trên cổng 5432, nhưng lệnh thực sự xác định cổng của PostgreQuery là gì?

Cấu hình: Ubuntu 9.10 với PostgreSQL 8.4

Câu trả lời:


26

lsof và nmap là các giải pháp, nhưng chúng không được cài đặt theo mặc định. Những gì bạn muốn là netstat (8).

sudo netstat -plunt |grep postgres

Linux được cho là đang di chuyển khỏi tuyến / ifconfig / netstat. Lệnh hiện đại tương đương là ss -plung|grep postgres(lưu ý, cùng cờ)
ptman

1
Không có gcờ nữa cho sslệnh. Hãy thử:ss -pa |grep postgresql
GrayedFox

1
@GrayedFox cảm ơn vì đã cập nhật, nhưng đối với tôi, đó là tên của cổng chứ không phải số, vì vậy tôi nghĩ ss -pan |grep postgreslà phù hợp hơn
ptman

6

Tiện ích PostgreSQL pg_lscluster hiển thị thông tin về cấu hình và trạng thái của tất cả các cụm, bao gồm cả số cổng.

$ 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

Điều này cũng có lợi thế là không yêu cầu đặc quyền 'sudo' để chạy.

Trên các hệ thống Debian và Ubuntu, lệnh pg_lscl cluster được cung cấp bởi gói postgresql-common, được cài đặt theo mặc định với máy chủ postgresql.


3
Lưu ý rằng đó pg_lsclusterslà một Ubuntu-ism và không phải là một lệnh Postgres tiêu chuẩn. Nó sẽ hoạt động trong trường hợp này, nhưng không phải là một giải pháp cho mục đích chung ...
voretaq7

2

Nếu bạn muốn làm điều đó từ bên trong cơ sở dữ liệu, chỉ cần thực hiện "SHOW port". Nhưng điều đó giả định rằng bạn đã có thể kết nối với nó, ít nhất là tại địa phương ...


1

Nếu bạn đang tìm kiếm trên máy cục bộ, tôi sẽ sử dụng lệnh lsof để kiểm tra cổng postgresql đang sử dụng

lsof -p <postgres_process_id>

Bạn có thể phải chạy cái này với quyền root.
Michael Mior

1

Tôi có các máy có nhiều phiên bản postgres đang chạy - và vì vậy tôi cũng gặp vấn đề về việc cố gắng khớp cơ sở dữ liệu chính xác với mỗi cổng. Tôi có xu hướng làm:

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

Và sau đó, đối với mỗi trường hợp được trả về, hãy tìm thư mục ( -Dđối số) và:

$ sudo grep port $DIR/postgresql.conf

0

Đây là một giải pháp mà tôi đã tìm thấy:

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

Nếu bạn muốn tìm kiếm một máy không cục bộ, chỉ cần thay đổi localhostthành địa chỉ IP của máy chủ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.