Mac OSX Lion Postgres не принимает соединения на /tmp/.s.PGSQL.5432

Я получаю общую ошибку Mac OSX для Homebrew установок Postgres,

No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

По-видимому, это связано с тем, что в системе несколько установок. Однако обычные шаги не решают проблемы.

Я могу успешно запустить Postgres и запустить:

ps auxw | grep post

возвращается..

euanmillar       847   0.0  0.0  2432768    588 s000  R+   11:19am   0:00.00 grep postgres
euanmillar       845   0.0  0.0  2439324    448   ??  Ss   11:19am   0:00.00 postgres:
stats collector process
euanmillar       844   0.0  0.0  2443176   1520   ??  Ss   11:19am   0:00.00 postgres:
autovacuum launcher process
euanmillar       843   0.0  0.0  2443044    544   ??  Ss   11:19am   0:00.00 postgres: wal writer process
euanmillar       842   0.0  0.0  2443044    584   ??  Ss   11:19am   0:00.00 postgres: writer process
euanmillar       841   0.0  0.0  2443044    596   ??  Ss   11:19am   0:00.00 postgres: checkpointer process
euanmillar       839   0.0  0.0  2443044   3616 s000  S    11:19am   0:00.02 /us

Похоже, что Postgres работает.

Я прокомментировал следующие строки в postgresql.conf

port = 5432
unix_socket_directory = '/var/pgsql_socket'
unix_socket_permissions = 0777

и в var/pgsql_socket/ у меня есть скрытый файл.s.PGSQL.5432

Я пробовал решения многих постов здесь. Этот особенно кажется похожим:

https://dba.stackexchange.com/questions/21587/postgresql-is-running-locally-but-i-cannot-connect-why

Но разница в том, что у меня есть каталог '/var/pgsql_socket', который читается всем. Я использовал Homebrew, чтобы полностью удалить и переустановить Postgres, но у меня все та же проблема.

6 ответов

Вам необходимо удалить postmaster.pid, который должен находиться по следующему пути:/usr/local/var/postgres/postmaster.pid

Для меня я удалил postmaster.pid в /usr/local/var/postgres, исправил меня прямо

Более простое решение состоит в том, чтобы найти, где сокет на самом деле против того, где он должен быть. В моем случае я побежал:

$ locate PGSQL.5432
/private/var/pgsql_socket/.s.PGSQL.5432
/private/var/pgsql_socket/.s.PGSQL.5432.lock

Затем просто поместите символическую ссылку на ожидаемое местоположение сокета на фактическое местоположение сокета.

$ ln -s /private/var/pgsql_socket/.s.PGSQL.5432 /tmp/.s.PGSQL.5432

Используется системный клиент, а не ваша версия brew. Подход символической ссылки длится только до следующего перезапуска. Этот подход устраняет основную проблему, я считаю,

  1. sudo edit /etc/paths
  2. Переместить строку, содержащую /usr/local/bin в начало файла. (До /usr/bin)
  3. Удалите ваши postgres gem (s) (gem uninstall pg)
  4. Запустите новую оболочку, чтобы загрузить новые настройки среды
  5. bundle

Это не специфическая проблема OS X. Вам нужно будет почистить установку postgres, а затем снова установить ее. Я сталкивался с этой проблемой на моем Ubuntu 12.04. При очистке предыдущей установки вам нужно будет удалить все пакеты, начиная с postgres (postgresql, postgresql-common, postgresql-client и т. Д.), Другими словами, postgres*. Я не использовал brew, использовал порт на OS X Lion. Я думаю, что эквивалентная команда должна быть sudo brew remove postgres*, После этого нужно выполнить команду sudo brew install postgresql.

Кроме того, если вы чувствуете, что сервер уже работает, вы можете попробовать sudo -u postgres createuser, Если это не поможет, вам нужно будет переустановить.

Тем не менее, выход вашего ps aux | grep post на самом деле сама команда grep. Не работает сервер postgres.

РЕДАКТИРОВАТЬ: Похоже, что следующая ссылка может быть полезной https://dba.stackexchange.com/questions/21587/postgresql-is-running-locally-but-i-cannot-connect-why Если да, то этот вопрос может быть дубликат

У меня была такая же проблема на Mac Serria. В Mac Serria вы можете найти postmaster.pid внутри /Users/<user_name>/Library/Application Support/Postgres/var-9.6 если вы использовали установщик GUI, а не homebrew.

После удаления этого файла все должно работать нормально.

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