Найдите имя хоста и порт с помощью команд PSQL

У меня работает PSQL, и я пытаюсь подключить приложение Perl к базе данных. Есть ли команда для поиска текущего порта и хоста, на котором работает база данных?


person jamesatha    schedule 08.04.2011    source источник


Ответы (14)


Порт PostgreSQL по умолчанию - 5432. Хост, на котором работает база данных, должен был быть предоставлен вашим хостинг-провайдером; Я предполагаю, что это был бы тот же хост, что и веб-сервер, если бы он не был указан. Обычно это настраивается как localhost, если ваш веб-сервер и сервер базы данных находятся на одном хосте.

person Brad Koch    schedule 08.04.2011
comment
Я тоже столкнулся с этой проблемой и пробовал порт 5433, и это работает - person Jonny Manowar; 07.08.2018
comment
На самом деле это не отвечает на вопрос. - person s.k; 17.04.2020
comment
@ s.k Прочтите контекст. OP не знал хост и порт для своей базы данных postgres. Они могут подключиться с помощью базовой команды psql, что подразумевает localhost:5432. Если только кто-то не сообразителен с env vars / aliases / и т. Д. Мне не нравится мой ответ десять лет спустя, но решение x вместо y совершенно нормально, и в этом случае помог сотням людей. - person Brad Koch; 17.04.2020
comment
Я согласен с @sk Я нахожусь на удаленном сервере, где размещена база данных, поэтому, конечно, могу подключиться локально через localhost, но я хочу, чтобы внешнее приложение на другом сервере получало доступ к базе данных, где, конечно, база данных не существуют локально, поэтому мне было бы полезно знать ответ на исходный вопрос. - person user4779; 11.03.2021

Эта команда даст вам номер порта postgres

 \conninfo

Если postgres работает на сервере Linux, вы также можете использовать следующую команду

sudo netstat -plunt |grep postgres

ИЛИ (если это будет почтмейстер)

sudo netstat -plunt |grep postmaster

и вы увидите что-то похожее на это

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

в этом случае номер порта - 5432, который также является номером порта по умолчанию

кредиты ссылка

person Khaino    schedule 24.06.2016
comment
он приходит в качестве почтмейстера на 5432. - person codebased; 18.02.2017
comment
это правильный ответ. выбранный ответ верен, но не имеет отношения к вопросу. - person Luis Martins; 20.04.2018
comment
Это правильный ответ. Спасибо. - person starsinmypockets; 28.03.2021

select inet_server_addr(); дает вам IP-адрес сервера.

person Kaarel    schedule 17.09.2012
comment
к сожалению, это не дает реального имени хоста, если вы подключаетесь через прокси-сервер ssh - я продолжаю получать 127.0.0.1 - person Andrew Wolfe; 05.01.2015
comment
Ничего не получил: $postgres=# select inet_server_addr(); inet_server_addr ------------------ (1 row) - person trex; 14.04.2017
comment
Не указал имя хоста - person Kumar Vaibhav; 09.07.2018

Это не метод sql. Инструкции приведены на самом изображении. Выберите сервер, о котором вы хотите найти информацию, и следуйте инструкциям.

введите описание изображения здесь

person bonCodigo    schedule 05.06.2014
comment
Спасибо :) ............. - person Bilal; 21.06.2021

select inet_server_port(); дает вам порт сервера.

person Andromida    schedule 10.04.2014
comment
На bluehost этот запрос возвращает пустое поле, хотя на самом деле это порт 5432. Этот запрос не всегда возвращает номер порта. - person Eric Leschinski; 07.04.2015

Порт postgresql определен в вашем postgresql.conf файле.

Для меня в Ubuntu 14.04 это: /etc/postgresql/9.3/main/postgresql.conf

Внутри есть строчка:

port = 5432

Для изменения номера требуется перезапуск postgresql, чтобы оно вступило в силу.

person Eric Leschinski    schedule 06.04.2015

С терминала вы можете:

\ conninfo

Я бы посоветовал прочитать документацию по их исчерпывающему списку всех команд, используя:

\?

person Vinayak Mishra    schedule 07.11.2019

Вы можете использовать команду в psql \conninfo, вы получите You are connected to database "your_database" as user "user_name" on host "host_name" at port "port_number".

person Intra    schedule 26.07.2019

Из терминала вы можете просто создать кластеры списка postgres:

pg_lsclusters

Он вернет номер версии Postgres, имена кластеров, порты, статус, владельца, а также расположение ваших каталогов данных и файла журнала.

person mrwonderfulness    schedule 31.01.2021

зайдите в «Терминал» и просто введите

service postgres status

В результатах вы можете получить подробную информацию о порте  Сведения о запуске postgres

В моем случае он работает на порту 5432 (по умолчанию).
Я использую CentOS 7. Надеюсь, это поможет.

person Rahal Kanishka    schedule 08.11.2017

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

Здесь используется встроенная переменная HOST в psql, которая задокументирована здесь.

И системные информационные функции postgres, задокументированные здесь

person professorcolm    schedule 28.03.2018
comment
Если вы подключаетесь локально, HOST будет каталогом, в котором находится сокет вашего домена UNIX, например /tmp. - person bishop; 10.09.2019

service postgresql status

возвращает: 10 / main (порт 5432): онлайн

Я использую Ubuntu 18.04

person Marcos Galigarcia    schedule 29.04.2019

person    schedule
comment
К сожалению, это не сработает, если у вас есть несколько серверов в одном кластере ... - person Vitor Baptista; 02.03.2013
comment
Это фактически дает вам номер порта, а не хост сервера. - person hd1; 08.05.2013
comment
@ hd1: А? Вопрос был (также) в том, как получить номер порта. И это то, что возвращает запрос. - person a_horse_with_no_name; 09.05.2013
comment
да, но если вы не можете подключиться к базе данных, вы не сможете это выполнить: P - person jaydel; 05.05.2020

person    schedule
comment
Чем это отличается от ответа Каарелла Китсеметса и ответить? - person All Workers Are Essential; 02.06.2016
comment
Он отвечает на вопрос, который был задан как единое решение для копирования и вставки. - person gerardw; 03.06.2016