Ответ 1
Вам нужно удалить postmaster.pid, который должен находиться по следующему пути:
/usr/local/var/postgres/postmaster.pid
Я получаю общую ошибку 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/info/21587/postgresql-is-running-locally-but-i-cannot-connect-why
Но разница в том, что у меня есть каталог '/var/pgsql_socket', который CHOWN-ed для всех. Я использовал Homebrew для полного удаления и повторной установки Postgres, и все же у меня такая же проблема.
Вам нужно удалить 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. Подход symlink продолжается только до следующего перезапуска. Этот подход фиксирует корневую проблему, я полагаю,
/etc/paths
/usr/local/bin
, в начало файла. (До /usr/bin
)gem uninstall pg
)bundle
Это не проблема конкретной ОС. Вам нужно будет очистить установку postgres, а затем снова установить ее. Я столкнулся с этой проблемой на моем ubuntu 12.04. При очистке вашей предыдущей установки вам нужно будет удалить все пакеты, начиная с postgres (postgresql, postgresql-common, postgresql-client и т.д.), Другими словами, postgres *. Я не использовал brew, использовал порт для OS X Lion. Я думаю, что эквивалентная команда должна быть sudo brew remove postgres*
. Sudo brew установите postgresql, затем выполните трюк.
Кроме того, если вы чувствуете, что сервер уже запущен, вы можете попробовать sudo -u postgres createuser
. Если это не удастся, вам нужно будет переустановить.
Однако вывод вашего ps aux | grep post
на самом деле является самой командой grep. Не работает сервер postgres.
EDIT: Похоже, что следующая ссылка может помочь 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.
После удаления этого файла все должно работать нормально.