Найдите имя хоста и порт с помощью команд 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.