Temukan nama host dan port menggunakan perintah PSQL

150

Saya menjalankan PSQL, dan saya mencoba untuk mendapatkan aplikasi perl yang terhubung ke database. Apakah ada perintah untuk menemukan port saat ini dan host yang menjalankan database?

jamesatha
sumber

Jawaban:

57

Port PostgreSQL default adalah 5432. Host tempat database beroperasi seharusnya disediakan oleh penyedia hosting Anda; Saya kira itu akan menjadi host yang sama dengan server web jika tidak ada yang ditentukan. Biasanya ini akan dikonfigurasi sebagai localhost, dengan asumsi server web Anda dan server database berada pada host yang sama.

Brad Koch
sumber
Saya mengalami masalah ini juga, dan mencoba port 5433, dan ini bekerja
Jonny Manowar
5
Ini sebenarnya tidak menjawab pertanyaan.
sk
@sk. Baca konteksnya. OP tidak tahu host dan port untuk database postgres mereka. Mereka dapat terhubung dengan psqlperintah dasar , sehingga menyiratkan localhost:5432. Kecuali jika ada yang pandai dengan env vars / aliases / etc. Saya tidak menyukai jawaban saya satu dekade kemudian, tetapi menyelesaikan x bukannya y baik-baik saja dan dalam hal ini telah membantu ratusan orang.
Brad Koch
227
SELECT *
FROM pg_settings
WHERE name = 'port';
seekor kuda tanpa nama
sumber
2
Ini tidak berfungsi jika Anda memiliki beberapa server di kluster yang sama, sayangnya ...
Vitor Baptista
2
Ini sebenarnya memberi Anda nomor port bukan host server.
HD1
2
@ hd1: Dan? Pertanyaannya adalah (juga) bagaimana cara mendapatkan nomor port. Dan itulah yang dikembalikan oleh kueri.
a_horse_with_no_name
ya, tetapi jika Anda tidak dapat terhubung ke database, Anda tidak dapat menjalankannya: P
jaydel
137

Perintah ini akan memberi Anda nomor port postgres

 \conninfo

Jika postgres berjalan di server Linux, Anda juga dapat menggunakan perintah berikut

sudo netstat -plunt |grep postgres

ATAU (jika itu datang sebagai kepala kantor pos)

sudo netstat -plunt |grep postmaster

dan Anda akan melihat sesuatu yang mirip seperti ini

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

dalam hal ini, nomor port adalah 5432 yang juga merupakan nomor port default

tautan kredit

Khaino
sumber
1
itu akan datang sebagai kepala kantor pos untuk 5432.
kode
4
Ini adalah jawaban yang benar. jawaban yang dipilih benar tetapi tidak terkait dengan pertanyaan.
Luis Martins
42

select inet_server_addr(); memberi Anda alamat ip server.

Kaarel
sumber
2
Sayangnya ini tidak memberikan nama host "langsung" jika Anda terhubung melalui ssh proxy - saya terus mendapatkan "127.0.0.1"
Andrew Wolfe
8
Saya tidak mendapatkan apa pun:$postgres=# select inet_server_addr(); inet_server_addr ------------------ (1 row)
trex
Tidak memberikan nama host
Kumar Vaibhav
15

select inet_server_port(); memberi Anda port server.

Andromida
sumber
3
Di bluehost kueri ini mengembalikan bidang kosong padahal kenyataannya port tersebut adalah 5432. Permintaan ini tidak selalu mengembalikan nomor port.
Eric Leschinski
13
select inet_server_addr( ), inet_server_port( );
gerardw
sumber
1
Bagaimana ini berbeda dari Kaarel Kitsemets ini jawaban dan Andromida ini jawabannya ?
Semua Pekerja Penting
1
Ini menjawab pertanyaan yang diajukan sebagai solusi salin dan rekat tunggal.
gerardw
12

Ini adalah metode non-sql. Instruksi diberikan pada gambar itu sendiri. Pilih server tempat Anda ingin mencari info dan kemudian ikuti langkah-langkahnya.

masukkan deskripsi gambar di sini

bonCodigo
sumber
9

Port postgresql didefinisikan dalam postgresql.conffile Anda .

Bagi saya di Ubuntu 14.04 adalah: /etc/postgresql/9.3/main/postgresql.conf

Di dalamnya ada garis:

port = 5432

Mengubah nomor di sana membutuhkan restart postgresql agar bisa berlaku.

Eric Leschinski
sumber
5

Anda bisa menggunakan perintah di psql \conninfo yang akan Anda dapatkanYou are connected to database "your_database" as user "user_name" on host "host_name" at port "port_number".

Intra
sumber
3

Dari terminal Anda dapat melakukan:

\ conninfo

Saya sarankan membaca dokumentasi pada daftar lengkap dari semua perintah menggunakan:

\

Vinayak Mishra
sumber
0

pergi ke "Terminal" dan ketik saja

service postgres status

Dalam hasilnya, Anda bisa mendapatkan detail portMenjalankan detail postgres

Dalam kasus saya ini berjalan pada port "5432" (default).
Saya menggunakan CentOS 7. Semoga ini bisa membantu.

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

Ini menggunakan psql's built in HOST variabel, didokumentasikan di sini

Dan Fungsi Informasi Sistem postgres, didokumentasikan di sini

professorcolm
sumber
Jika Anda terhubung secara lokal, HOSTakan menjadi direktori di mana soket domain UNIX Anda berada, misalnya /tmp.
Uskup
0
service postgresql status

pengembalian: 10 / utama (port 5432): online

Saya menjalankan Ubuntu 18.04

Marcos Galigarcia
sumber