Вопрос по ruby-on-rails, postgresql – Postgres просто случайно перестал работать (Rails, PGSQL.5432)

3

Я использовал одну и ту же базу данных Postgres в этом же приложении в течение месяца без проблем, и я ничего не изменил в базе данных до того, как эта ошибка случайно появилась сегодня. Однако сегодня Постгрес случайно начал выдавать эту ошибку, когда я пытаюсь "rails s" (Я получаю ошибку такого же типа при запуске createb или createuser):

Выход /Users/Joe/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.2.2/lib/active_record/connection_adapters/postgresql_adapter.rb:1194:in `initialize & apos ;: не удалось подключиться к серверу: нет такой файл или каталог (PG :: Ошибка)        Сервер работает локально и принимает        подключения к сокету домена Unix & quot; /tmp/.s.PGSQL.5432" ;?

Что действительно странно, так это то, что у моего друга вчера были те же самые ошибки (работавшие над тем же приложением), и он исправил его, запустив скрипт изhttp://nextmarvel.net/blog/2011/09/brew-install-postgresql-on-os-x-lion/, После запуска скрипта он удалил и переустановил драгоценный камень PG, чтобы все заработало. Тем не менее, он работает под управлением OS X Lion, а я - Snow Leopard, так что скрипт не будет работать для меня.

Любые идеи (1), почему это случайно начало происходить и (2), как это исправить?

Да, это работает. Мы подтвердили, запустив «Стартовый стартовый постгрес». команда, и в выводе сказано, что PosgresSQL работает. Andrew Smith
Можете ли вы подключиться к нему сpsql? mu is too short
Да, консоль показывала, что наши тестовые команды psql работали нормально. Andrew Smith
Есть ли/tmp/s.PGSQL.5432 существовать? Каковы его разрешения? dbenhur
PostgreSQL работает? Вы перезагрузились и забыли запустить? mu is too short

Ваш Ответ

5   ответов
0

У меня была похожая ошибка, и я нашел этот ответ полезным

Восстановление Postgresql после обновления до OSX 10.7 Lion

Я решил, добавив

export PATH=/usr/local/bin:$PATH

на мой .bash_profile

0

Я получал ту же ошибку при запуске рельсов (нет такого файла или каталога).Re-installing postgres with the Установщик PostgreSQL в один клик и перезагрузка решил проблему.

В моем случае это произошло после установки Mountain Lion, который, вероятно, очистил каталог tmp.

2

У меня была похожая проблема сегодня, хотя в моем случае postgres (установленный через homebrew на MacOS 10.8) не работал, но я не мог запустить или перезапустить его. Оказалось, что из-за аварии зомби блокировал сокет, чтобы решить его, я сделал следующее

lsof -i :5432

это показало PID процесса блокировки, я просто убил его

kill -9 PID

и postgres перезапустил нормально.

НТН

1
  • Maybe something deleted /tmp/.s.PGSQL.5432 socket - a /tmp/ cleaning service for example.
  • Maybe you'll be able to connect using :host => 'localhost' as connection argument for PG::Connection.new() — it will avoid problems with locating proper path for Unix socket or file permissions problems.
  • If you do not want to use localhost (it probably is a little slower than a socket) then you can find where it is using lsof | grep PGSQL command as operating system administrator — if it is for example /var/run/postgres/.s.PGSQL.5432 — you would use :host => '/var/run/postres/'.
iCyborg: Вы не можете запретить очистку / tmp /, так как, вероятно, это tmpfs (каталог в памяти). Можете добавитьln -s ... в/etc/rc.d/rc.local Скрипт запуска.
Том, я знаю, что это старый ответ, но у меня точно такая же проблема, можете ли вы сказать мне, как не дать ссылке /tmp/.s.PGSQL.5432 перестать удалять после перезагрузки системы? как сейчас, я должен вручную создать ссылку через & quot; sudo ln -s /tmp/.s.PGSQL.5432 /var/run/postgresql/.s.PGSQL.5432"
0

Я столкнулся с той же проблемой, и когда я проверил server.log, я увидел, что он не смог найти эту папку var / postgres и некоторые файлы conf.

Я сделал это, однако я потерял свои данные в этом случае

brew uninstall postgres
brew install postgres
initdb `brew --prefix`/var/postgres/data -E utf8``

Это хорошо сработало для меня, и все вернулось на круги своя.

Похожие вопросы