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
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:
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
g
cờ nữa cho ss
lệnh. Hãy thử:ss -pa |grep postgresql
ss -pan |grep postgres
là phù hợp hơn
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.
pg_lsclusters
là 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 ...
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 ...
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>
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
Đâ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 localhost
thành địa chỉ IP của máy chủ.
ss -plung|grep postgres
(lưu ý, cùng cờ)