Znajdź nazwę hosta i port za pomocą poleceń PSQL


150

Mam uruchomiony PSQL i próbuję uzyskać aplikację perl łączącą się z bazą danych. Czy istnieje polecenie znalezienia bieżącego portu i hosta, na którym działa baza danych?

Odpowiedzi:


57

Domyślny port PostgreSQL to 5432. Host, na którym działa baza danych, powinien być dostarczony przez dostawcę usług hostingowych; Sądzę, że byłby to ten sam host, co serwer WWW, gdyby go nie określono. Zwykle jest to konfigurowane jako localhost, przy założeniu, że serwer WWW i serwer bazy danych znajdują się na tym samym hoście.


Też napotkałem ten problem i próbowałem portu 5433, a to działa
Jonny Manowar

5
To właściwie nie odpowiada na pytanie.
sk

@sk Przeczytaj kontekst. OP nie znał hosta i portu swojej bazy danych postgres. Mogą łączyć się za pomocą podstawowego psqlpolecenia, więc to sugeruje localhost:5432. Chyba że ktoś sprytnie radzi sobie ze zmiennymi środowiskami / aliasami / itp. Nie podoba mi się moja odpowiedź dekadę później, ale rozwiązanie x zamiast y jest całkowicie w porządku iw tym przypadku pomogło setkom ludzi.
Brad Koch

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

2
To nie działa, jeśli masz wiele serwerów w tym samym klastrze, niestety ...
Vitor Baptista

2
To faktycznie daje numer portu, a nie hosta serwera.
hd1

2
@ hd1: A co? Pytanie brzmiało (również) jak uzyskać numer portu. I to właśnie zwraca zapytanie.
a_horse_with_no_name

tak, ale jeśli nie możesz połączyć się z bazą danych, nie możesz tego wykonać: P
jaydel

137

To polecenie poda numer portu postgres

 \conninfo

Jeśli postgres działa na serwerze Linux, możesz również użyć następującego polecenia

sudo netstat -plunt |grep postgres

LUB (jeśli jest poczmistrzem)

sudo netstat -plunt |grep postmaster

a zobaczysz coś podobnego do tego

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

w tym przypadku numer portu to 5432, który jest również domyślnym numerem portu

link do kredytów


1
nadchodzi jako postmaster 5432.
kodu

4
to jest właściwa odpowiedź. wybrana odpowiedź jest prawdziwa, ale nie ma związku z pytaniem.
Luis Martins

42

select inet_server_addr(); podaje adres IP serwera.


2
niestety nie daje to nazwy hosta „na żywo”, jeśli łączysz się przez serwer proxy ssh - ciągle otrzymuję „127.0.0.1”
Andrew Wolfe

8
Nic nie dostałem:$postgres=# select inet_server_addr(); inet_server_addr ------------------ (1 row)
trex

Nie
podałem

15

select inet_server_port(); podaje port serwera.


3
Na bluehost to zapytanie zwraca puste pole, podczas gdy w rzeczywistości był to port 5432. To zapytanie nie zawsze zwraca numer portu.
Eric Leschinski


12

To jest metoda inna niż sql. Instrukcje podano na samym obrazku. Wybierz serwer, o którym chcesz znaleźć informacje, a następnie postępuj zgodnie z instrukcjami.

wprowadź opis obrazu tutaj


9

Port postgresql jest zdefiniowany w postgresql.confpliku.

Dla mnie w Ubuntu 14.04 jest to: /etc/postgresql/9.3/main/postgresql.conf

Wewnątrz znajduje się linia:

port = 5432

Zmiana tamtej liczby wymaga ponownego uruchomienia postgresql, aby odniosła skutek.


5

Możesz użyć polecenia w psql \conninfo , które otrzymaszYou are connected to database "your_database" as user "user_name" on host "host_name" at port "port_number".


3

Z terminalu możesz:

\ conninfo

Proponuję przeczytać dokumentację na ich wyczerpującej liście wszystkich poleceń przy użyciu:

\?


0

przejdź do „Terminala” i po prostu wpisz

service postgres status

W wynikach możesz uzyskać szczegółowe informacje o porcieUruchamiam szczegóły postgresów

W moim przypadku działa na porcie „5432” (domyślnie).
Używam CentOS 7, mam nadzieję, że to pomoże.


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

Używa wbudowanej w psql zmiennej HOST, udokumentowanej tutaj

Oraz funkcje informacji o systemie postgres, udokumentowane tutaj


Jeśli łączysz się lokalnie, HOSTbędzie katalog, w którym znajduje się gniazdo domeny UNIX, np /tmp.
biskup

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.