PostgreSQL LinuxWindowsсервер PostgreSQL

PostgreSQL: PostgreSQL не запускается из-за занятого порта

  • Обновлено
  • Чтение ≈ 2 минуты
  • Нужны права администратора

Краткий ответ

PostgreSQL не стартует после изменения настроек, потому что запрошенный TCP-порт уже занят другим процессом, включая второй экземпляр PostgreSQL. Важно определить, какой именно кластер и процесс занимает порт, прежде чем перезапускать службы.

В этой статье
  1. Симптом и границы применимости
  2. Как отличить возможные причины
  3. Пошаговая диагностика и безопасное исправление
  4. Как проверить, что проблема устранена
  5. Если исправление не помогло

#Симптом и границы применимости

PostgreSQL не стартует после изменения настроек, потому что запрошенный TCP-порт уже занят другим процессом, включая второй экземпляр PostgreSQL. Важно определить, какой именно кластер и процесс занимает порт, прежде чем перезапускать службы.

#Как отличить возможные причины

Возможная причинаКак узнатьЧто делать
Другой экземпляр PostgreSQLНа сервере запущены две версии или кластера, слушающие один порт.ss показывает postgres на 5432Согласовать уникальные порты
Другое приложениеПорт занят сторонней службой.ss показывает другой процессПроверить назначение порта
Старый процесс не завершёнПосле перезапуска остаётся активный слушатель.В журнале bind address already in useРазобраться с менеджером служб

#Пошаговая диагностика и безопасное исправление

  1. 1. Найдите точное сообщение о портеНа сервере откройте журнал службы PostgreSQL через штатный менеджер вашей ОС и найдите could not bind IPv4/IPv6 address либо address already in use. Не считайте эту ошибку равной отсутствию разрешения на файлы.
  1. 2. Посмотрите, кто слушает портНа Linux выполните ss с необходимыми правами для просмотра имени процесса. Порт 5432 — значение по умолчанию, в вашем кластере оно может быть другим.
  2. Терминал Linux с sudo; только просмотр слушающих TCP-сокетов
    Linux · Терминал (Bash)КомандаНужен sudo
    Терминал Linux с sudo; только просмотр слушающих TCP-сокетов. Не завершает процессы.
    sudo ss -ltnp '( sport = :5432 )'
  1. 3. Сопоставьте с именем кластераНа Debian/Ubuntu с пакетами postgresql-common команда pg_lsclusters показывает список кластеров и их порты. На других ОС используйте конфигурацию соответствующей службы, не копируя чужую команду.
    Linux · Терминал (Bash)Команда
    Только Debian/Ubuntu с postgresql-common; если команды нет, пропустите шаг.
    pg_lsclusters
  1. 4. Найдите эффективный порт в настройкахЕсли кластер временно работает на другом порте, подключитесь к нему и выполните SHOW port и SHOW config_file. Для остановленного кластера проверьте его postgresql.conf через разрешённый доступ к файлу.
  1. 5. Не убивайте неизвестный процессЕсли порт занят действующим кластером с рабочими приложениями, не используйте kill -9. Согласуйте, должен ли новый кластер слушать другой порт, либо требуется плановое выключение старого.
  1. 6. Исправьте конфигурацию конкретного кластераВ тестовой копии укажите свободный разрешённый порт и согласуйте его с приложением и сетевыми правилами. Параметр port меняется при запуске службы, поэтому простая перезагрузка конфигурации не всегда достаточна.
  1. 7. Проверьте запуск и подключениеПосле согласованного перезапуска нужной службы повторите ss и подключитесь клиентом на точный порт. Убедитесь, что имя базы и версия кластера ожидаемые, прежде чем переключать приложение.
  2. Терминал; замените адрес, порт, роль и БД
    Linux · Терминал (Bash)Команда
    Терминал; замените адрес, порт, роль и БД. Пароль вводите безопасным способом, не в аргументе команды.
    psql -h 127.0.0.1 -p 5432 -U app_user -d appdb -c "SELECT current_database(), version();"

#Как проверить, что проблема устранена

Порт прослушивается одним ожидаемым кластером; подключение приложения идёт в нужную базу, действующие сервисы не прерваны.

#Если исправление не помогло

Если ss ничего не показывает, выясните, на каком этапе завершился запуск PostgreSQL; проверьте права на каталог данных, конфигурацию и последние строки журнала.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.