Właśnie zaktualizowałem serwer MacMini z Lion Server do Mountain Lion przy użyciu systemu OS X Server. Mam ten sam problem z PostgreSQL, który zrobiłem w zeszłym roku, kiedy po raz pierwszy zainstalowałem Lion Server.
Kiedy próbuję wykonać jakiekolwiek polecenie terminala PostgreSQL, otrzymuję następujący notoryczny komunikat o błędzie, który wielu otrzymało przez lata:
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?
Próbowałem zmienić hasło do _postgres, kiedy pojawił się błąd. Wypróbowałem kilka poleceń, ale otrzymałem ten sam błąd. Właśnie zrestartowałem serwer, ale bez powodzenia. Zalogowałem się jako root, aby spojrzeć na / var / pgsql_socket i folder jest pusty. Folder / var / pgsql_socket_alt jest również pusty.
Sprawdziłem o tym w Internecie. Jednak prawie wszystkie rozwiązania, które przeczytałem, w tym dotyczące Stack Overflow, sugerują usunięcie i ponowne zainstalowanie PostgreSQL. Nie wiem, ale nie wydaje się to wiarygodną opcją, ponieważ kilka opcji w aplikacji serwera korzysta z PostgreSQL. Skontaktowałem się z Apple Enterprise Support (bez umowy) i powiedziano mi, że mój problem będzie musiał rozwiązać programiści, którzy rzucą 695 USD.
Mam witrynę, która jest teraz wyłączona, ponieważ nie mogę jej odbudować. W tej chwili nie wiem, do kogo zwrócić się o pomoc. Będę nadal szukał w Internecie, aby sprawdzić, czy coś znajdę. Mam jednak nadzieję, że ktoś szybko udzieli mi odpowiedzi, abym mógł odbudować bazę danych.
Aktualizacja: 13.12.2012 15:33 GMT-6
Oto moje wyjście dla ps auwwx | grep postg:
_postgres 28123 0.0 0.1 2479696 7724 ?? Ss 3:01PM 0:00.04 /Applications/Server.app/Contents/ServerRoot/usr/bin/postgres_real -D /Library/Server/PostgreSQL For Server Services/Data -c listen_addresses= -c log_connections=on -c log_directory=/Library/Logs/PostgreSQL -c log_filename=PostgreSQL_Server_Services.log -c log_line_prefix=%t -c log_lock_waits=on -c log_statement=ddl -c logging_collector=on -c unix_socket_directory=/Library/Server/PostgreSQL For Server Services/Socket -c unix_socket_group=_postgres -c unix_socket_permissions=0770
server1 28216 0.0 0.0 2432768 620 s000 R+ 3:02PM 0:00.00 grep postg
_postgres 28138 0.0 0.0 2439388 752 ?? Ss 3:01PM 0:00.01 postgres: stats collector process
_postgres 28137 0.0 0.0 2479828 1968 ?? Ss 3:01PM 0:00.00 postgres: autovacuum launcher process
_postgres 28136 0.0 0.0 2479696 544 ?? Ss 3:01PM 0:00.00 postgres: wal writer process
_postgres 28135 0.0 0.0 2479696 732 ?? Ss 3:01PM 0:00.01 postgres: writer process
_postgres 28134 0.0 0.0 2479696 592 ?? Ss 3:01PM 0:00.00 postgres: checkpointer process
_postgres 28131 0.0 0.0 2439388 368 ?? Ss 3:01PM 0:00.00 postgres: logger process
Aktualizacja: 13.12.2012 18:10 GMT-6
Po intensywnym wyszukiwaniu w Internecie znaleziono ten film. Udało mi się uruchomić PostgreSQL i usunąć błąd. Jestem w stanie połączyć się za pomocą pgadmin i phppgadmin. Miałem zamiar wrócić do Lion Server z powodu czystej frustracji. Teraz nie będę musiał.
źródło
psql
jest dostępnaPATH
przed wersją, którą zainstalowałeś. Szukają gniazda unix w różnych miejscach. Albo użyj tcp / ip, określając,-h localhost
albo najlepiej napraw swoje,PATH
tak abypsql
najpierw znaleźć poprawną . Dziwna decyzja Apple, aby nie tylko dołączyć PostgreSQL do pakietu, ale zepsuć go, aby umieścić rzeczy w niestandardowych miejscach, jest główną przyczyną tego problemu.homebrew
iosx
@CraigRinger mogą mieć dla Ciebie właściwą odpowiedź, potwierdź za pomocąbrew doctor
.Odpowiedzi:
Udało mi się dodać następujące elementy do mojego .bash_profile, aby zapobiec wystąpieniu błędu:
To działa, ponieważ :
Twój system operacyjny obsługuje gniazda domeny Unix, ale gniazdo Uniksa PostgreSQL, które
psql
wymaga, albo nie istnieje, albo znajduje się w innej lokalizacji niż oczekuje.Podanie nazwy hosta jawnie jako
localhost
wymuszapsql
użycie protokołu TCP / IP. Ustawienie zmiennej środowiskowejPGHOST
jest jednym ze sposobów osiągnięcia tego. Jest to udokumentowane w podręczniku psql .źródło
host: localhost
w database.yml. @dwhalendatabase.yml
, kiedy ten błąd pojawił się po przejściu Postgres do starszej wersji zarządzanej przez Homebrew.Spróbuj wkleić w konsoli to:
źródło
Udało mi się to rozwiązać, wpisując po prostu 127.0.0.1 dla adresu hosta PostgreSQL, zamiast pozostawić go pustym. (Przykład Django)
źródło
Otwórz „postgresql.conf” w swoim ulubionym edytorze. Poszukaj zmiennej „unix_socket_directories”, najprawdopodobniej będzie wyglądać następująco:
Zmień wiersz na ten:
Zauważ, że jeśli chcesz, aby pliki gniazd w więcej niż jednym katalogu, oddziel je przecinkami.
źródło
O wiele prostsze rozwiązanie (dzięki http://daniel.fone.net.nz/blog/2014/12/01/fixing-connection-errors-after-upgrading-postgres/ ). Zaktualizowałem do Postgres 9.4. W moim przypadku wszystko, co musiałem zrobić (po dniu googlowania i niepowodzenia)
Uruchom ponownie webrick i gotowe!
źródło
Jak wspominali inni w komentarzach, naprawdę prostym rozwiązaniem tego problemu jest zadeklarowanie „hosta” bazy danych w konfiguracji bazy danych. Dodanie tej odpowiedzi tylko po to, aby była trochę bardziej zrozumiała dla każdego, kto to czyta.
Na przykład w aplikacji Ruby on Rails wyedytuj plik /config/database.yml:
Uwaga: ostatnia linia dodana w celu określenia hosta. Przed aktualizacją do Yosemite nigdy nie musiałem określać hosta w ten sposób.
Mam nadzieję, że to komuś pomoże.
Twoje zdrowie
źródło
.s.PGSQL.5432
plik.Sprawdź stan bazy danych:
Jeśli baza danych nie działa, uruchom bazę danych:
źródło
Czy możesz sprawdzić swój plik postgresql.conf?
Na jakim porcie działa Twój postgres?
Myślę, że nie działa na porcie 5432, jeśli nie, zmień go na 5432
LUB na terminalu
źródło
Miałem ten problem z Django.
Napraw to, jawnie ustawiając nazwę hosta na „localhost”.
źródło
robię to słowem:
i wybierz preferowane lokalizacje
(9.5 to moja wersja postgresql)
a potem to słowo!
źródło
Jeśli masz powyższy problem, ale dokonałeś aktualizacji z Yosemite, potrzebne jest inne podejście, ponieważ rozwiązanie do aktualizacji może zniszczyć niektóre pliki. Więcej szczegółów można znaleźć w pliku `pg_tblspc`, którego brakuje po instalacji najnowszej wersji systemu OS X (Yosemite lub El Capitan) .
źródło
źródło
Ciągle otrzymywałem powyższy błąd i żadne z powyższych rozwiązań nie działało. Wreszcie poniższe rozwiązanie rozwiązało mój problem w systemie Mac OS X
Zainstaluj postgres za pomocą brew
Zainstaluj usługi parzenia
Aby uruchomić postgres jako usługę w tle
Aby zatrzymać postgres ręcznie
Możemy również skorzystać z usług piwowarskich, aby zrestartować Postgres
źródło
sprawdź, czy serwer postgres działa z następującym kodem
jeśli serwer postgres jest nieaktywny, wpisz następującą komendę.
źródło
Ten błąd wystąpił po tym, jak mój komputer sam się zawiesił i ponownie uruchomił. Rozwiązanie dla mnie nie zostało znalezione na tej stronie, a raczej na innym bardzo wysoko ocenianym pytaniu SO z tym samym błędem psql: nie można połączyć się z serwerem: Nie ma takiego pliku lub katalogu (Mac OS X) . Odpowiedź: po prostu usuń ten plik
/usr/local/var/postgres/postmaster.pid
, a potembrew services restart postgresql
załatwił sprawę. Zwróć uwagę na ostrzeżenie w połączonej odpowiedzi o zabijaniu procesów postgres, zanim to zrobisz, w przeciwnym razie możesz trwale uszkodzić bazę danych.źródło
Dla aplikacji RubyOnRails dodaj
localhost
Jeśli używasz niestandardowej wersji Postgresqlźródło
Uprawnienia do plików są restrykcyjne w bazie danych Postgres należącej do systemu Mac OS. Te uprawnienia są resetowane po restarcie lub restarcie Postgres: np. Serveradmin start postgres.
Dlatego tymczasowo zresetuj uprawnienia lub własność:
Resetowanie uprawnień nie jest bezpieczne, więc dla rozwiązania zainstaluj wersję bazy danych, którą posiadasz.
źródło
Zajęło mi to trochę czasu, ale udało mi się to w końcu uruchomić po przejrzeniu oferowanych sugestii i wykonaniu dodatkowych wyszukiwań w Internecie. Wykorzystałem informacje w poniższym filmie na YouTube stworzonym przez Mactasia:
http://www.youtube.com/watch?v=y1c7WFMMkZ4
Kiedy to zrobiłem, zobaczyłem plik z rozszerzeniem .lock. Jednak nadal otrzymywałem błąd, gdy próbowałem uruchomić serwer Rails, kiedy wznowiłem pracę z moją aplikacją Rails przy użyciu PostgreSQL. Tym razem dostałem błąd odmowy pozwolenia. Wtedy przypomniałem sobie, że nie tylko musiałem zmienić Listen_addresses w plist, ale także zmienić unit_socket_permissions na 0777. Zalogowałem się również jako root, aby zmienić uprawnienia w folderze var / pgsql_socket, do którego mam dostęp na poziom użytkownika. Postgres działa teraz dobrze. Jestem w trakcie ponownego ładowania danych z kopii zapasowej SQL.
To, czego nie rozumiałem, to to, że kiedy włączałem wiki, PostgreSQL prawdopodobnie działał, gdy zrobiłem postgres sudo serveradmin fullstatus, ale nadal otrzymałem błąd. No cóż.
źródło
Właśnie utworzyłem nowy klaster i który działał dla mnie, używałem (PostgreSQL) 9.3.20:
źródło
Najpierw usuń zainstalowane postgresy:
Następnie zainstaluj „synaptic”:
Następnie zainstaluj Postgres
źródło