Знайдіть ім'я хосту та порт за допомогою команд PSQL


150

У мене працює PSQL, і я намагаюся отримати програму Perl для підключення до бази даних. Чи є команда знайти поточний порт і хост, на якому працює база даних?

Відповіді:


57

Портом PostgreSQL за замовчуванням є 5432. Хост, над яким працює база даних, повинен був надати ваш хостинг-провайдер; Я б припустив, що це був би той самий хост, що й веб-сервер, якби його не вказали. Зазвичай це налаштовується як localhost, якщо припустити, що ваш веб-сервер і сервер баз даних на одному хості.


Я також зіткнувся з цією проблемою, і пробував порт 5433, і це працює
Jonny Manowar

5
Це фактично не відповідає на питання.
sk

@sk Прочитайте контекст. ОП не знав хоста і порту для своєї бази даних postgres. Вони можуть з'єднуватися з базовою psqlкомандою, так що це означає localhost:5432. Якщо хтось не спритний з env vars / псевдонімами тощо. Я не люблю свою відповідь через десять років, але вирішити x замість y - це прекрасно, і в цьому випадку допомогли сотні людей.
Бред Кох

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

2
Це не працює, якщо у вас є кілька серверів в одному кластері, на жаль ...
Vitor Baptista

2
Це фактично дає номер порту, а не хоста сервера.
hd1

2
@ hd1: І? Питання полягало в (також), як отримати номер порту. І саме це повертає запит.
a_horse_with_no_name

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

137

Ця команда дасть вам номер порту 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
це правильна відповідь. обрана відповідь вірна, але не пов'язана з питанням.
Луїс Мартінс

42

select inet_server_addr(); дає вам ip-адресу сервера.


2
на жаль, це не дає "живого" імені хоста, якщо ви підключаєтесь через ssh proxy - я продовжую отримувати "127.0.0.1"
Ендрю Вулф

8
Я нічого не отримав:$postgres=# select inet_server_addr(); inet_server_addr ------------------ (1 row)
trex

Не дав ім'я господаря
Кумар Вайбхав

15

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


3
На Bluehost цей запит повертає порожнє поле, коли насправді порт був 5432. Цей запит не завжди повертає номер порту.
Ерік Лещинський


12

Це не-sql метод. Інструкції наведені на самому зображенні. Виберіть сервер, про який ви хочете знайти інформацію, і виконайте дії.

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


9

Порт postgresql визначений у вашому postgresql.confфайлі.

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

Всередині є лінія:

port = 5432

Щоб змінити номер, потрібен перезапуск postgresql, щоб він набрав чинності.


5

Ви можете використовувати команду в psql, \conninfo яку ви отримаєтеYou are connected to database "your_database" as user "user_name" on host "host_name" at port "port_number".


3

З терміналу ви можете:

\ conninfo

Я б запропонував прочитати документацію з їх вичерпного списку всіх команд, використовуючи:

\?


0

перейдіть до «Терміналу» та просто наберіть

service postgres status

У результатах ви можете отримати порт деталіЗапуск деталей постгресу

У моєму випадку він працює на порту "5432" (за замовчуванням).
Я використовую CentOS 7. Надіюсь, це допомагає.


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

Для цього використовується вбудована в команду змінна HOST, зафіксована тут

І постгреси системних інформаційних функцій, задокументовані тут


Якщо ви підключаєтесь локально, HOSTбуде каталог, у якому знаходиться ваш роз'єм домену UNIX, наприклад /tmp.
єпископ

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.