База данных Postgres не запускается на порту 5432, несмотря на отсутствие мешающего процесса, но работает на других портах

Проблема

Когда я попытался включить базу данных Postgres 15 через Postgres.app на порту 5432, она не работает и не включается. Я пробовал все, что в моих силах, чтобы решить эту проблему, но я не могу понять это.

Это всплывающее окно с ошибкой, которое появляется, и я получаю эту ошибку в журнале сервера:

2023-04-19 00:10:05.163 PDT [35503] LOG:  listening on IPv6 address "::1", port 5432
2023-04-19 00:10:05.163 PDT [35503] LOG:  listening on IPv4 address "127.0.0.1", port 5432
2023-04-19 00:10:05.163 PDT [35503] LOG:  could not bind Unix address "/tmp/.s.PGSQL.5432": Address already in use
2023-04-19 00:10:05.163 PDT [35503] HINT:  Is another postmaster already running on port 5432?
2023-04-19 00:10:05.163 PDT [35503] WARNING:  could not create Unix-domain socket in directory "/tmp"
2023-04-19 00:10:05.163 PDT [35503] FATAL:  could not create any Unix-domain sockets
2023-04-19 00:10:05.164 PDT [35503] LOG:  database system is shut down

Примечание. Я не устанавливал Postgres через Homebrew, и база данных запускается нормально, если я выберу другой порт, например 5433.

Что я сделал

Я знаю, о чем вы думаете, у меня есть процесс, работающий на порту 5432?

Я проверил это с помощью lsof -i :5432, sudo lsof -i :5432 и netstat | grep "5432" | grep "LISTEN" на порту 5432, и терминал оказался пустым. Я ожидал, что мешающий процесс появится в списке процессов, а затем я просто собирался убить этот процесс, чтобы освободить порт. Однако на порту 5432 не было буквально никаких процессов.

Я даже пытался удалить и переустановить Postgres.app и Postgres, и это все равно не решило проблему (если только я не сделал это неправильно). Вроде схожу с ума, пытаясь решить эту проблему, гуглил и пробовал все, что мог. Другие номера портов работают, но не порт 5432. Кроме того, у меня нет конфиденциальных данных, которые нужно хранить или сохранять, я просто пытаюсь заставить мой локальный Postgres работать на 5432, потому что мне не нужно менять все на 5433 или что-то всякий раз, когда я использую Postgres через кодовую базу. Так что, если есть какие-то хакерские способы выполнить эту работу, включающую удаление вещей, я не согласен.

Ценим любую помощь!

Сообщения об ошибках не лгут

Phil is on strike 20.04.2023 01:32

Не очень полезно, сэр :-|

Vikram Nithyanandam 20.04.2023 01:42

Я имею в виду, что определенно есть что-то противоречивое. Может ли это быть ранее неудачное завершение работы, из-за которого сокет unix остался на месте (файл /tmp/.s.PGSQL.5432, упомянутый в сообщении об ошибке). Вы можете попробовать удалить это, если можете

Phil is on strike 20.04.2023 01:57

Ни одна из команд, которые вы нам показали, не укажет, существует ли уже файл /tmp/.s.PGSQL.5432.

jjanes 20.04.2023 05:11

Я понимаю! Я не мог найти много информации о том, что такое /tmp/.s.PGSQL.5432 или для какой цели он служит (должно быть, я недостаточно хорошо гуглил 😅). Спасибо за помощь jjanes!

Vikram Nithyanandam 20.04.2023 20:20
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
5
90
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если посмотреть сообщения, то проблем с привязкой TCP-сокета к порту 5432 нет. Проблема с созданием файла доменного сокета, потому что файл уже есть /tmp/.s.PGSQL.5432. Удалите этот файл, и сервер должен запуститься.

Ну, в подсказке было сказано HINT: Is another postmaster already running on port 5432?, поэтому я думал в этом направлении, и я никогда не понимал, о чем /tmp/.s.PGSQL.5432, поэтому я обязательно посмотрю на это!

Vikram Nithyanandam 20.04.2023 20:19

Это сработало! Запустил ls -a под /tmp и нашел файл, а затем запустил sudo rm .s.PGSQL.5432, чтобы удалить его. Спасибо!

Vikram Nithyanandam 20.04.2023 20:26

Другие вопросы по теме