Tìm tên máy chủ và cổng bằng các lệnh PSQL


150

Tôi có PSQL đang chạy và tôi đang cố gắng để có một ứng dụng perl kết nối với cơ sở dữ liệu. Có một lệnh để tìm cổng và máy chủ hiện tại mà cơ sở dữ liệu đang chạy không?

Câu trả lời:


57

Cổng PostgreSQL mặc định là 5432. Máy chủ lưu trữ mà cơ sở dữ liệu đang hoạt động phải được cung cấp bởi nhà cung cấp dịch vụ lưu trữ của bạn; Tôi đoán nó sẽ là máy chủ giống như máy chủ web nếu không được chỉ định. Thông thường, điều này sẽ được cấu hình là localhost, giả sử máy chủ web và máy chủ cơ sở dữ liệu của bạn nằm trên cùng một máy chủ.


Tôi cũng gặp phải vấn đề này và đã thử cổng 5433 và nó đang hoạt động
Jonny Manowar

5
Điều này không thực sự trả lời câu hỏi.
sk

@sk Đọc bối cảnh. OP không biết máy chủ và cổng cho cơ sở dữ liệu postgres của họ. Họ có thể kết nối với một psqllệnh cơ bản , do đó ngụ ý localhost:5432. Trừ khi ai đó có được sự thông minh với env vars / bí danh / v.v. Tôi không thích câu trả lời của mình một thập kỷ sau đó, nhưng giải x thay vì y là hoàn toàn tốt và trong trường hợp này đã giúp hàng trăm người.
Brad Koch

225
SELECT *
FROM pg_settings
WHERE name = 'port';

2
Điều này không hoạt động nếu bạn có nhiều máy chủ trong cùng một cụm, thật không may ...
Vitor Baptista

2
Điều này thực sự cung cấp cho bạn số cổng chứ không phải máy chủ lưu trữ.
hd1

2
@ hd1: Và? Câu hỏi là (cũng) làm thế nào để có được số cổng. Và đó là những gì truy vấn trả về.
a_horse_with_no_name

có, nhưng nếu bạn không thể kết nối với cơ sở dữ liệu, bạn không thể thực thi điều đó: P
jaydel

136

Lệnh này sẽ cung cấp cho bạn số cổng postgres

 \conninfo

Nếu postgres đang chạy trên máy chủ Linux, bạn cũng có thể sử dụng lệnh sau

sudo netstat -plunt |grep postgres

HOẶC (nếu nó là bưu điện)

sudo netstat -plunt |grep postmaster

và bạn sẽ thấy một cái gì đó tương tự như thế này

tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      140/postgres
tcp6       0      0 ::1:5432                :::*                    LISTEN      140/postgres

trong trường hợp này, số cổng là 5432 cũng là số cổng mặc định

liên kết tín dụng


1
nó sẽ trở thành bưu điện cho 5432.
mã hóa vào

4
đây là câu trả lời đúng. câu trả lời được chọn là đúng nhưng không liên quan đến câu hỏi.
Luis Martins

42

select inet_server_addr(); cung cấp cho bạn địa chỉ IP của máy chủ.


2
thật đáng tiếc điều này không cung cấp tên máy chủ "trực tiếp" nếu bạn kết nối qua proxy ssh - Tôi tiếp tục nhận được "127.0.0.1"
Andrew Wolfe

8
Tôi không nhận được gì:$postgres=# select inet_server_addr(); inet_server_addr ------------------ (1 row)
trex

Không đặt tên máy chủ
Kumar Vaibhav

15

select inet_server_port(); cung cấp cho bạn cổng của máy chủ.


3
Trên bluehost, truy vấn này trả về một trường trống khi trong thực tế, cổng là 5432. Truy vấn này không phải lúc nào cũng trả về số cổng.
Eric Leschinski


12

Đây là phương pháp không sql. Hướng dẫn được đưa ra trên chính hình ảnh. Chọn máy chủ mà bạn muốn tìm thông tin và sau đó làm theo các bước.

nhập mô tả hình ảnh ở đây


9

Cổng postgresql được xác định trong postgresql.conf tệp .

Đối với tôi trong Ubuntu 14.04, đó là: /etc/postgresql/9.3/main/postgresql.conf

Bên trong có một dòng:

port = 5432

Thay đổi số ở đó yêu cầu khởi động lại postgresql để nó có hiệu lực.


5

Bạn có thể sử dụng lệnh trong psql \conninfo bạn sẽ nhận đượcYou are connected to database "your_database" as user "user_name" on host "host_name" at port "port_number".


3

Từ thiết bị đầu cuối bạn có thể làm:

\ kết nối

Tôi sẽ đề nghị đọc một tài liệu trên danh sách đầy đủ tất cả các lệnh bằng cách sử dụng:

\?


0

đi đến "Terminal" và chỉ cần gõ

service postgres status

Trong kết quả, bạn có thể nhận được các chi tiết cổngChạy chi tiết postgres

Trong trường hợp của tôi, nó chạy trên cổng "5432" (mặc định).
Tôi đang sử dụng CentOS 7. Hy vọng điều này sẽ giúp.


0
SELECT CURRENT_USER usr, :'HOST' host, inet_server_port() port;

Điều này sử dụng biến HOST được xây dựng trong biến HOST, được ghi lại ở đây

Và chức năng thông tin hệ thống postgres, tài liệu ở đây


Nếu bạn đang kết nối cục bộ, HOSTsẽ là thư mục chứa ổ cắm tên miền UNIX của bạn, vd /tmp.
giám mục

0
service postgresql status

trả về: 10 / chính (cổng 5432): trực tuyến

Tôi đang chạy Ubuntu 18.04

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.