Mac zaktualizowany właśnie teraz, postgres jest teraz zepsuty

0

Używam postgres 9.1 / ruby ​​1.9.2 / rails 3.1.0 na maxbook air dla lokalnych programistów. Wszystko działa płynnie od miesięcy (chociaż po raz pierwszy opracowałem program na komputerze Mac).

To MacBook Air z zeszłego roku, a dziś dostałem wiadomość o aktualizacji oprogramowania Mac OSX, tak jak kilka razy wcześniej, a mój system pobrał około 450 MB aktualizacji i uruchomił się ponownie. Teraz mówi, że jest w OSX 10.7.3.

Chodzi o to, że postgres przestał działać, kiedy uruchamiam mój cienki serwer (lustro cedru heroku), a następnie przeglądam aplikację railsową:

PG::Error

could not connect to server: Permission denied
    Is the server running locally and accepting
    connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

Co się stało? Po przejrzeniu kilku pytań wciąż jestem zdezorientowany, ale oto kilka dodatkowych informacji:

  • Uruchomienie psql z wiersza poleceń daje ten sam błąd
  • Mogę uruchomić pgadmin 3 i połączyć się za jego pośrednictwem i uruchomić SQL bez problemów
  • Uruchamianie, które psql pokazuje wersję jako / usr / bin / psql
  • Utworzyłem użytkownika PostgreSQL, kiedy dostałem Maca (zawsze był na lwie) Nie mam pojęcia, dlaczego, prawie na pewno podążałem za tutorialem, który zaniedbałem w swoich notatkach. Chodzi o to, że wiem, że istnieje również użytkownik _postgres. Wiem, że to śmieci, ale poza notatką na temat haseł, nie mam żadnych dodatkowych informacji o tym, jak skonfigurowałem postgres - choć oczywistą implikacją jest to, że nie użyłem użytkownika _postgres.

Czy ktoś ma sugestie lub informacje na temat tego, co mogło się zmienić / co mogę spróbować debugować i naprawić? Dzięki.

Edycja: baw się na podstawie tego pytania i odpowiedzi: https://stackoverflow.com/questions/7975414/check-status-of-postgresql-server-mac-os-x , zobacz następujący ciąg poleceń:

$ sudo su postgreSQL
bash-3.2$ /Library/PostgreSQL/9.1/bin/pg_ctl start -D /Library/PostgreSQL/9.1/data
pg_ctl: another server might be running; trying to start server anyway
server starting
bash-3.2$ 2012-04-08 19:03:39 GMT FATAL:  lock file "postmaster.pid" already exists
2012-04-08 19:03:39 GMT HINT:  Is another postmaster (PID 68) running in data directory "/Library/PostgreSQL/9.1/data"?

bash-3.2$ exit
użytkownik52224
źródło
Witaj @ user52224, czy znalazłeś odpowiedź na to pytanie? Czy sprawdziłeś plik pid, aby zobaczyć, jaki zawiera identyfikator procesu, a jeśli tak, to czy ten proces istnieje?
Paul

Odpowiedzi:

5

Jeśli maszyna zostanie wyłączona bez faktycznego procesu zamykania, PostgreSQL odmówi uruchomienia podczas następnego rozruchu. Wynika to z faktu, że wcześniejszy plik PID nadal istnieje, a PostgreSQL uważa, że ​​już działa. Tak mówi komunikat o błędzie w Twojej edycji.

Musisz usunąć postmaster.pidplik z katalogu PostgreSQL. Według komunikatu swój błąd, pełna ścieżka do pliku PID jest: /Library/PostgreSQL/9.1/data/postmaster.pid. Usuń ten plik, a PostgreSQL nie uruchomi się bez problemu.

bałagan
źródło