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


161

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

Ответы:


64

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


Я тоже столкнулся с этой проблемой и пробовал порт 5433, и это работает
Джонни Мановар

16
На самом деле это не отвечает на вопрос.
sk

1
@sk Прочтите контекст. OP не знал хост и порт для своей базы данных postgres. Они могут подключиться с помощью базовой psqlкоманды, так что это подразумевает localhost:5432. Если только кто-то не сообразил env vars / aliases / etc. Мне не нравится мой ответ десять лет спустя, но решение x вместо y совершенно нормально, и в этом случае помогло сотням людей.
Брэд Кох

237
SELECT *
FROM pg_settings
WHERE name = 'port';

2
К сожалению, это не сработает, если у вас несколько серверов в одном кластере ...
Витор Баптиста,

3
Это фактически дает вам номер порта, а не хост сервера.
hd1

2
@ hd1: А? Вопрос был (также) как получить номер порта. И это то, что возвращает запрос.
a_horse_with_no_name

да, но если вы не можете подключиться к базе данных, вы не сможете это выполнить: P
jaydel

151

Эта команда даст вам номер порта 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, который также является номером порта по умолчанию.

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


1
он приходит , как почтмейстер для 5432.
codebased

4
это правильный ответ. выбранный ответ верен, но не имеет отношения к вопросу.
Луис Мартинс

46

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


2
к сожалению, это не дает "живого" имени хоста, если вы подключаетесь через прокси-сервер ssh - я продолжаю получать "127.0.0.1"
Эндрю Вулф

10
Я ничего не понимаю:$postgres=# select inet_server_addr(); inet_server_addr ------------------ (1 row)
Trex

1
Не назвал имя хозяина
Кумар Вайбхав 09


17

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


3
На bluehost этот запрос возвращает пустое поле, хотя на самом деле это порт 5432. Этот запрос не всегда возвращает номер порта.
Эрик Лещински

14

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

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


10

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

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

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

port = 5432

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


7

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


5

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

\ conninfo

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

\?


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

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

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


Если вы подключаетесь локально, HOSTэто будет каталог, в котором находится ваш доменный сокет UNIX, например /tmp.
епископ

0

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

service postgres status

В результатах вы можете получить порт деталиДетали запуска postgres

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


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.