Suchen Sie den Hostnamen und den Port mithilfe von PSQL-Befehlen

150

Ich habe PSQL ausgeführt und versuche, eine Perl-Anwendung mit der Datenbank zu verbinden. Gibt es einen Befehl, um den aktuellen Port und Host zu finden, auf dem die Datenbank ausgeführt wird?

Jamesatha
quelle

Antworten:

57

Der Standard-PostgreSQL-Port ist 5432. Der Host, auf dem die Datenbank ausgeführt wird, sollte von Ihrem Hosting-Anbieter bereitgestellt worden sein. Ich würde vermuten, dass es der gleiche Host wie der Webserver wäre, wenn keiner angegeben würde. In der Regel wird dies als lokaler Host konfiguriert, vorausgesetzt, Ihr Webserver und Ihr Datenbankserver befinden sich auf demselben Host.

Brad Koch
quelle
Ich bin auch auf dieses Problem gestoßen und habe versucht, den 5433-Port zu verwenden, und das funktioniert
Jonny Manowar,
5
Dies beantwortet die Frage nicht wirklich.
Sk
@sk Lies den Kontext. Das OP kannte den Host und den Port für seine Postgres-Datenbank nicht. Sie können sich mit einem Basisbefehl verbinden psql, was impliziert localhost:5432. Es sei denn, jemand wurde schlau mit env vars / aliasen / etc. Ich mag meine Antwort ein Jahrzehnt später nicht, aber das Lösen des x anstelle von y ist vollkommen in Ordnung und hat in diesem Fall Hunderten von Menschen geholfen.
Brad Koch
225
SELECT *
FROM pg_settings
WHERE name = 'port';
ein Pferd ohne Name
quelle
2
Dies funktioniert leider nicht, wenn Sie mehrere Server im selben Cluster haben ...
Vitor Baptista
2
Dies gibt Ihnen tatsächlich die Portnummer und nicht den Serverhost.
HD1
2
@ HD1: Und? Die Frage war (auch), wie man die Portnummer bekommt. Und genau das gibt die Abfrage zurück.
a_horse_with_no_name
Ja, aber wenn Sie keine Verbindung zur Datenbank herstellen können, können Sie dies nicht ausführen: P
jaydel
136

Dieser Befehl gibt Ihnen die Postgres-Portnummer

 \conninfo

Wenn postgres auf einem Linux-Server ausgeführt wird, können Sie auch den folgenden Befehl verwenden

sudo netstat -plunt |grep postgres

ODER (wenn es als Postmeister kommt)

sudo netstat -plunt |grep postmaster

und Sie werden etwas Ähnliches sehen

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

In diesem Fall lautet die Portnummer 5432, was auch die Standardportnummer ist

Credits Link

Khaino
quelle
1
es kommt als Postmeister für 5432
codebased
4
Das ist die richtige Antwort. Die gewählte Antwort ist wahr, aber nicht mit der Frage verbunden.
Luis Martins
42

select inet_server_addr(); gibt Ihnen die IP-Adresse des Servers.

Kaarel
quelle
2
Leider gibt dies nicht den "Live" -Hostnamen an, wenn Sie eine Verbindung über einen SSH-Proxy herstellen. Ich erhalte weiterhin "127.0.0.1"
Andrew Wolfe,
8
Ich habe nichts bekommen:$postgres=# select inet_server_addr(); inet_server_addr ------------------ (1 row)
Trex
Hat den Hostnamen nicht angegeben
Kumar Vaibhav
15

select inet_server_port(); gibt Ihnen den Port des Servers.

Andromida
quelle
3
Auf bluehost gibt diese Abfrage ein leeres Feld zurück, wenn der Port in Wirklichkeit 5432 war. Diese Abfrage gibt nicht immer die Portnummer zurück.
Eric Leschinski
13
select inet_server_addr( ), inet_server_port( );
gerardw
quelle
1
Wie unterscheidet sich das von Kaarel Kitsemets Antwort und Andromidas Antwort ?
Alle Arbeiter sind essentiell
1
Es beantwortet die Frage, die als einzelne Lösung zum Kopieren und Einfügen gestellt wurde.
Gerardw
12

Dies ist eine Nicht-SQL-Methode. Anweisungen finden Sie auf dem Bild selbst. Wählen Sie den Server aus, zu dem Sie Informationen finden möchten, und befolgen Sie die Schritte.

Geben Sie hier die Bildbeschreibung ein

bonCodigo
quelle
9

Der Postgresql-Port ist in Ihrer postgresql.confDatei definiert .

Für mich in Ubuntu 14.04 ist es: /etc/postgresql/9.3/main/postgresql.conf

Im Inneren befindet sich eine Linie:

port = 5432

Um die Nummer dort zu ändern, muss postgresql neu gestartet werden, damit sie wirksam wird.

Eric Leschinski
quelle
5

Sie können den Befehl in psql verwenden, den \conninfo Sie erhaltenYou are connected to database "your_database" as user "user_name" on host "host_name" at port "port_number".

Intra
quelle
3

Vom Terminal aus können Sie Folgendes tun:

\ conninfo

Ich würde vorschlagen, eine Dokumentation in der vollständigen Liste aller Befehle zu lesen, indem Sie Folgendes verwenden:

\?

Vinayak Mishra
quelle
0

Gehen Sie zum "Terminal" und geben Sie einfach ein

service postgres status

In den Ergebnissen können Sie die bekommen Port DetailsPostgres-Details ausführen

In meinem Fall läuft es auf Port "5432" (Standard).
Ich verwende CentOS 7. Hoffentlich hilft das.

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

Dies verwendet die in psql integrierte HOST-Variable, die hier dokumentiert ist

Und Postgres-Systeminformationsfunktionen, die hier dokumentiert sind

Professorcolm
quelle
Wenn Sie eine lokale Verbindung herstellen, HOSTist dies das Verzeichnis, in dem sich Ihr UNIX-Domänensocket befindet, z /tmp.
Bischof
0
service postgresql status

Rückgabe: 10 / main (Port 5432): online

Ich verwende Ubuntu 18.04

Marcos Galigarcia
quelle