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?

jamesatha
źródło

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.

Brad Koch
źródło
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';
koń bez imienia
źródło
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

Khaino
źródło
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.

Kaarel
źródło
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.

Andromida
źródło
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
13
select inet_server_addr( ), inet_server_port( );
gerardw
źródło
1
Jak to się różni od Kaarel Kitsemets męska odpowiedź i Andromida za odpowiedź ?
Wszyscy pracownicy są niezbędni
1
Odpowiada na pytanie zadane jako pojedyncze rozwiązanie typu „kopiuj i wklej”.
gerardw
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

bonCodigo
źródło
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.

Eric Leschinski
źródło
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".

Intra
źródło
3

Z terminalu możesz:

\ conninfo

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

\?

Vinayak Mishra
źródło
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.

Rahal Kanishka
źródło
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

professorcolm
źródło
Jeśli łączysz się lokalnie, HOSTbędzie katalog, w którym znajduje się gniazdo domeny UNIX, np /tmp.
biskup
0
service postgresql status

zwraca: 10 / main (port 5432): online

Używam Ubuntu 18.04

Marcos Galigarcia
źródło