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?

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.


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';

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


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.


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.


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


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


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.


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".


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:

\?


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.


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


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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.