Ошибки

PostgreSQL: Connection refused на порту 5432 — что делать

Connection refused значит, что на этом адресе и порту подключения никто не ждёт: база остановлена, работает на другом порту или принимает подключения только с самого сервера. До проверки пароля дело не дошло.

≈ 5 мин чтения3 шага
Содержание 8

Как выглядит ошибка

psql: error: connection to server at "127.0.0.1", port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections?
  • at "127.0.0.1", port 5432 — куда подключались. Если указано имя, например localhost, рядом в скобках будет адрес, в который оно превратилось.
  • Connection refused — на этом порту никто не принимает подключения.
  • Вторая строка — подсказка psql: запущена ли база на том компьютере и принимает ли она подключения по сети.

Слова FATAL: в сообщении нет: до самой базы подключение не дошло. Если вместо Connection refused — Connection timed out или долгое ожидание, причина другая.

Шаг 1. Проверьте, запущена ли база

Команды вводятся на сервере с базой: подключитесь к нему по SSH (как подключиться) и набирайте их в том же окне.

pg_lsclusters

Команда покажет базы PostgreSQL на сервере — в PostgreSQL их называют кластерами. В строке каждого кластера есть его состояние: online — работает, down — остановлен. Если ответ command not found, PostgreSQL на этом сервере не установлен — как установить.

Если кластер в состоянии down, запустите его. В Ubuntu кластер, созданный при установке, называется main, 16 — номер версии:

sudo pg_ctlcluster 16 main start

Если система спросит пароль, введите пароль своего пользователя на сервере, а не пароль базы. Символы при вводе не видны — наберите пароль и нажмите Enter. Проверьте ещё раз командой pg_lsclusters. Если кластер не запускается, причина — в последних строках журнала:

sudo tail -n 30 /var/log/postgresql/postgresql-16-main.log

В примерах — PostgreSQL 16 из Ubuntu 24.04. В Ubuntu 26.04 ставится PostgreSQL 18: в путях и командах вместо 16 подставьте 18.

Шаг 2. Проверьте порт

Сравните порт в сообщении об ошибке с портом базы. Порт задан в файле настроек:

grep '^port' /etc/postgresql/16/main/postgresql.conf

В ответе — строка с номером порта. Ubuntu даёт новому кластеру первый свободный порт начиная с порта 5432. Если на сервере уже была база PostgreSQL, следующая получит другой порт, например 5433, — тогда укажите его в настройках сайта или в psql ключом -p:

psql -h 127.0.0.1 -p 5433 -U ivan shop

Шаг 3. Если подключаетесь с другого компьютера

По умолчанию PostgreSQL принимает подключения только с самого сервера: настройка listen_addresses равна localhost. Подключение на внешний адрес сервера получит Connection refused, даже если база работает.

  • Со своего компьютера подключайтесь через SSH-туннель — порт открывать не нужно: как это сделать.
  • С другого сервера нужно изменить listen_addresses, разрешить адрес в pg_hba.conf и открыть порт в фаерволе только для этого адреса — пошагово. listen_addresses применяется только после перезапуска: sudo systemctl restart postgresql.
Не открывайте порт 5432 для всех командой sudo ufw allow 5432: подбирать пароли к базе сможет кто угодно.

Если Connection timed out

Connection timed out значит, что ответа не пришло вовсе: подключение не пропускает фаервол или сеть. Проверьте адрес сервера, правила фаервола на сервере (команда ufw) и в панели провайдера, если там есть свой фаервол.

Ошибки рядом

Что видитеЧто делать
on socket … failed: No such file or directoryнет файла сокета
FATAL: no pg_hba.conf entry for hostподключение не разрешено в pg_hba.conf
FATAL: password authentication failedпароль не подошёл

Источники

Сверено 14 октября 2026 года.

Что почитать дальше