2013-07-23 12 views
24

Zainstalowałem PostgreSQL, a następnie uruchomiłem kilka aplikacji rails na moim lokalnym Mac OS X Mountain Lion i stworzyłem bazy danych itp. Dzisiaj po pewnym czasie, kiedy uruchomiłem pgAdminIII i próbował uruchomić serwer bazy danych mam ten błąd:Postgres DB nie uruchamia się na Mac OSX: ERROR mówi: połączenia na unixowym gniazdku domeny

enter image description here

szybkie google pokazał this post. Więcej przeglądania wskazuje na fakt, że może istnieć jakiś plik postmaster.pid, który może być przyczyną tego. Jeśli usunę, że wszystko będzie dobrze.

Zanim jednak usuwam pliki na moim komputerze, chciałem się upewnić, że będę je debagował w sposób systematyczny, co nie spowoduje więcej problemów.

Gdzieś czytałem, że przed usunięciem tego pliku, trzeba uruchomić polecenie:

ps auxw | grep post 

Jeśli dostanę żadnych wyników następnie jego OK, aby usunąć plik. Inaczej nie. Cóż, otrzymałem ten wynik tego polecenia:

AM    476 0.0 0.0 2423356 184 s000 R+ 9:28pm 0:00.00 grep post 

Teraz jestem oczywiście zdezorientowany.

Co więc powinienem zrobić?

Tutaj jest częścią mojego postgres dzienniku błędów serwera:

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

Postgresql nie jest jeszcze uruchomiony, wciąż ten sam błąd i nic się nie zmieniło. Im też kurczak, aby usunąć rzeczy bez sprawdzania na SO.

Czy niektórzy z was, eksperci, poprowadzą noob.

Dzięki

+0

Po pierwsze, nie jestem ekspertem. Powiedziawszy to, wygląda na to, że twoja baza danych nie została poprawnie zamknięta. Chciałbym usunąć plik pid i spróbować uruchomić bazę danych. – fbynite

+0

Tak, to jest to, co chcę zrobić, ale czytałem gdzieś, że może to spowodować trwałe uszkodzenie bazy danych, jeśli pid jest uruchomiony, gdy jest to zrobione. Nie wiesz, co to wszystko było o – banditKing

+0

@banditKing Nigdy nie powinieneś usuwać 'postmaster.pid'. Serwer usuwa go przy starcie, jeśli jest nieważny (nieaktualny) i jest ważny dla ochrony danych. Proszę ** wyjaśnij, jak zainstalowałeś PostgreSQL na swoim komputerze ** na początek - przez instalator EnterpriseDB, homebrew, Postgres.app, co? Wspomnij także o wersji PostgreSQL. Wreszcie, jeśli jawnie dodajesz "localhost" do opcji połączenia w Pgadmin-III, czy to działa? Jeśli tak, zostaniesz ugryziony przez naprawdę kiepską decyzję o opakowaniu, którą Apple zrobił jakiś czas temu ... –

Odpowiedz

13

Mam bazę danych działa teraz.

Oto kroki zrobiłem:

  1. I ponownym uruchomieniu komputera
  2. Otworzyłem terminal i pobiegł cd /
  3. Potem zrobiłem ls -la
  4. zapewnił, że mogę dostać się do MackintoshHD/usr/local/var/postgres
  5. Potem zrobiłem ls -la
  6. Tutaj zobaczyłem postmastera. plik pid
  7. Uruchomiłem to polecenie cp postmaster.pid ~/Desktop, które skopiowało plik na mój pulpit. Lubię to robić, gdy usuwam pliki. Jeśli coś robi źle mogę umieścić go z powrotem
  8. Wtedy wpadłem tego polecenia, aby usunąć plik z PostgreSQL katalogów rm -r postmaster.pid
  9. ja poszedłem do mojego pgadmin3 gui i wystrzelił w górę.i Voila to działało :)

Dzięki @Craig Ringer za pomoc

+1

Moje nie było w/usr/local/var/postgres ale w/Users/[myhome]/Library/Application Support/Postgres/var-9.5/- ostatni katalog zależy od twojej wersji, usunięty postmaster.pid i działał jak czar , dziękuję – Radek

16

To się często zdarza, jeśli baza danych nie został poprawnie zamknięty.

Usuń plik postmaster.pid:

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

Albo, z powrotem go:

mv /usr/local/var/postgres/postmaster.pid /usr/local/var/postgres/postmaster.pid.backup 
+1

Dzięki, to rozwiązanie działa! Po usunięciu 'postmaster.pid' i uruchomieniu' postgres -D/usr/local/var/postgres', zauważyłem, że przyczyna błędu: "system bazy danych nie został poprawnie zamknięty, automatyczne odzyskiwanie w toku" –

55

miałem ten sam problem dzisiaj na Mac Serria. W systemie Mac Serria można znaleźć postmaster.pid wewnątrz /Users/<user_name>/Library/Application Support/Postgres/var-9.6

+4

Usunięto 'postmaster. pid' w tej lokalizacji i problem został naprawiony. Dzięki! – JLF

+1

Tutaj również musiałem znaleźć plik "postmaster.pid", ponieważ korzystam z Postgres.app – Jarsen

-1

Używam Postgres.app, a poniżej pracował dla mnie:

wszedłem do mojego polecenia terminalu poniżej lokalizowania folder PostgreSQL wcześniej, a nie za pomocą " justin ".

$declare -x PGDATA="/Users/justin/Library/Application Support/Postgres/var-9.4" 

$pg_ctl restart -m immediate 

Jak Justin wyjaśnia w swoim stanowisku, wyjście po to było:

waiting for server to shut down……………………………………………………… failed pg_ctl: server does not shut down

Po ponownym wprowadzeniu polecenia:

$pg_ctl restart -m immediate 

Udało się i mam komunikat:

pg_ctl: old server process (PID: 373) seems to be gone starting server anyway server starting LOG: database system was interrupted; last known up at 2015-07-28 18:15:26 PDT LOG: database system was not properly shut down; automatic recovery in progress LOG: record with zero length at 0/4F0F7A8 LOG: redo is not required LOG: database system is ready to accept connections LOG: autovacuum launcher started

Source

Powiązane problemy