Не удается подключиться к серверу Postgres через службы brew

Я искал решение для этого и не нашел рабочего решения.

Я установил postgres, используя brew (brew install postgres) в своем MacBook, и в настоящее время я запускаю его с помощью служб brew (brew services list отображает postgres как запущенную службу). Однако, когда я пытаюсь запустить psql, я получаю следующую ошибку.

psql: невозможно подключиться к серверу: нет такого файла или каталога. сервер работает локально и принимает соединения в домене Unix socket "/tmp/.s.PGSQL.5432"?

Кто-нибудь уже решил аналогичную проблему?

Ответ 1

У меня была такая же ошибка, и я исправил ее, удалив файл pid процесса:

rm -f /usr/local/var/postgres/postmaster.pid

Ответ 2

Я столкнулся с этой проблемой сегодня. postgres прекратил принимать соединения, хотя доморощенный думал, что он работает.

Чтобы это исправить я побежал,

brew services restart -vvv postgresql

Выход из этой команды,

==> Successfully stopped 'postgresql' (label: homebrew.mxcl.postgresql)
==> Generated plist for postgresql:
   <?xml version="1.0" encoding="UTF-8"?>
   <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
   <plist version="1.0">
   <dict>
     <key>KeepAlive</key>
     <true/>
     <key>Label</key>
     <string>homebrew.mxcl.postgresql</string>
     <key>ProgramArguments</key>
     <array>
       <string>/usr/local/opt/postgresql/bin/postgres</string>
       <string>-D</string>
       <string>/usr/local/var/postgres</string>
     </array>
     <key>RunAtLoad</key>
     <true/>
     <key>WorkingDirectory</key>
     <string>/usr/local</string>
     <key>StandardErrorPath</key>
     <string>/usr/local/var/log/postgres.log</string>
   </dict>
   </plist>

Тогда я подумал, хм, может быть, есть что-то в этом файле журнала,

tail -n 10 /usr/local/var/log/postgres.log

Конечно же,

[4826] FATAL:  lock file "postmaster.pid" already exists
[4826] HINT:  Is another postmaster (PID 1489) running in data directory "/usr/local/var/postgres"?

Итак, я удалил этот файл

rm /usr/local/var/postgres/postmaster.pid

И все снова заработало.

Ответ 3

В моем случае файл postmaster.pid даже не был там. Я смог заставить его работать, обновив postgres.

brew update
brew upgrade

Затем, поскольку я обновил основную версию с 10 до 11, мне также пришлось запустить это:

brew postgresql-upgrade-database

(источник https://github.com/facebook/react-native/issues/18760#issuecomment-410533581)

Ответ 4

Я бы объединил два ответа от Уилсона и Грассхоппера.

Вы можете проверить файл plist для службы postgres с помощью brew services list, чтобы найти местоположение файла и просто открыть его в своем любимом редакторе.

Вы должны увидеть значение StandardErrorPath, указанное как:

<key>StandardErrorPath</key>
<string>/usr/local/var/log/postgres.log</string>

И затем вы должны закрыть конец файла журнала, используя tail -n 100 /usr/local/var/log/postgres.log

В моем случае ошибка была следующей:

2017-12-06 11: 51:16.078 GMT [85476] FATAL: файл блокировки "postmaster.pid" уже существует 2017-12-06 11: 51:16.078 GMT [85476] СОВЕТ: Является ли еще один почтмейстер (PID 601) в каталоге данных "/usr/local/var/postgres"?

Это было связано с тем, что мне пришлось жестко отключить мой Mac, и postgres не получили возможности очистить файл PID. Просто удалите файл PID rm /usr/local/var/postgres/postmaster.pid и запустите postgres brew services start postgresql

Слово предупреждения: не удалять этот файл PID, если вы не уверены, что postgres не работает. Вы можете сделать это, запустив brew services stop postgresql, а затем ожидая результата brew services list, чтобы показать, что posgres находится в состоянии остановки.

Ответ 5

Для меня сработало удаление папки /usr/local/var/postgres/ а затем повторное удаление и установка postgres

Ответ 6

У меня такая же ошибка при установке postgresql93 из версии tap. Проверяя файл .plist, указанный в выводе brew services list (~/Library/LaunchAgents/homebrew.mxcl.postgresql93.plist), я обнаружил следующее сообщение:

FATAL: каталог данных "/usr/local/var/postgres" имеет доступ к группе или миру

ДЕТАЛИ: Разрешения должны быть u = rwx (0700).

Что привело меня к этому ответу: каталог данных"/usr/local/var/postgres " имеет неправильное право собственности

После запуска sudo chmod -R 700 /usr/local/var/postgres у меня возникла другая ошибка:

FATAL: не удалось открыть каталог "pg_tblspc": нет такого файла или каталога

Что привело меня к: ` pg_tblspc`, отсутствующему после установки последней версии OS X (Yosemite или El Capitan)

После запуска mkdir /usr/local/var/postgres/pg_tblspc/ кластер начал успешно.

Ответ 8

обновить его с помощью команды

  brew postgresql-upgrade-database

если у вас есть следующая ошибка Команда 'brew' не найдена, ,но ее можно установить с помощью: sudo apt установить linuxbrew-wrapper

затем установите его с помощью команды

 sudo apt install linuxbrew-wrapper