Ошибки

PostgreSQL: connection to server on socket … No such file or directory

psql пытался подключиться к базе на этом же сервере через файл-сокет, а такого файла нет. Файл-сокет создаёт работающая база, поэтому ошибка значит: PostgreSQL на сервере не установлен, остановлен или работает на другом порту.

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

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

psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: No such file or directory
	Is the server running locally and accepting connections on that socket?
  • on socket — подключение через файл-сокет: особый файл, через который программы на одном сервере связываются с базой без сети. psql идёт так, если адрес базы не указан.
  • /var/run/postgresql/ — папка с файлами-сокетами PostgreSQL в Ubuntu.
  • .s.PGSQL.5432 — имя файла, 5432 на конце — номер порта базы.
  • No such file or directory — такого файла нет.

Если в сообщении путь /tmp/.s.PGSQL.5432, причина своя.

Шаг 1. Проверьте, есть ли база на этом сервере

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

pg_lsclusters

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

Шаг 2. Запустите базу

Если кластер в состоянии 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.

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

Посмотрите, какие файлы-сокеты есть в папке:

ls -a /var/run/postgresql/

Имя файла-сокета начинается с точки, поэтому он скрытый — его покажет только ключ -a. Для работающей базы в папке есть файл .s.PGSQL. с номером порта на конце. Если номер другой, например .s.PGSQL.5433, база работает на порту 5433. Укажите порт ключом -p:

sudo -u postgres psql -p 5433

В настройках сайта укажите тот же порт.

Если в сообщении папка /tmp

Программы из пакетов Ubuntu ищут сокет в /var/run/postgresql/. Папка сокета по умолчанию задаётся при сборке PostgreSQL: путь /tmp/ значит, что psql или программа собраны с другими настройками. Укажите папку сами ключом -h: путь, который начинается с косой черты, psql понимает как папку с файлом-сокетом.

sudo -u postgres psql -h /var/run/postgresql

Если база на другом сервере

Без адреса psql ищет базу на этом же сервере. Если база на другом сервере или в облаке провайдера, укажите её адрес ключом -h, вместо 203.0.113.10 — адрес базы:

psql -h 203.0.113.10 -U ivan shop

Адрес, имя пользователя и пароль облачной базы — в панели провайдера.

Ошибки рядом

Что видитеЧто делать
connection to server at … failed: Connection refusedбаза не принимает подключения по сети
FATAL: Peer authentication failed for userимя в системе не совпало с именем в базе
FATAL: role "anna" does not existтакого пользователя в базе нет

Источники

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

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