Podobnie jak w przypadku innych, otrzymuję ten błąd, gdy uruchamiam rake db: migrate w moim projekcie lub nawet próbuję większości zadań bazy danych dla moich aplikacji Ruby on Rails 3.2.
PGError (nie można połączyć się z serwerem: brak takiego pliku lub katalogu. Czy serwer działa lokalnie i akceptuje połączenia w gnieździe domeny Unix "/tmp/.s.PGSQL.5432"?
Zainstalowałem PostgreSQL z Homebrew dawno temu i po niedawnej próbie instalacji MongoDB moja instalacja PostgreSQL nigdy nie była taka sama. Używam systemu OS X 10.6 Snow Leopard.
Co jest nie tak i jak mogę lepiej zrozumieć, jak PostgreSQL jest i powinien być skonfigurowany na moim Macu?
Jak dotąd (myślę) to mówi mi, że PostgreSQL nie działa (?).
ps -aef|grep postgres (ruby-1.9.2-p320@jct-ana) (develop) ✗
501 17604 11329 0 0:00.00 ttys001 0:00.00 grep postgres
Ale czy to mówi mi, że PostgreSQL działa?
✪ launchctl load -w /usr/local/Cellar/postgresql/9.1.4/homebrew.mxcl.postgresql.plist (ruby-1.9.2-p136)
homebrew.mxcl.postgresql: Already loaded
Jak to naprawić? czego ja nie widzę
PS: ~/Library/LaunchAgents
zawiera dwa pliki .plist PostgreSQL. Nie jestem pewien, czy to ma znaczenie.
org.postgresql.postgres.plist
homebrew.mxcl.postgresql.plist
Wypróbowałem następujące i otrzymałem wynik jak poniżej.
$ psql -p 5432 -h localhost
psql: could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Connection refused
Is the server running on host "localhost" (::1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Connection refused
Is the server running on host "localhost" (fe80::1) and accepting
TCP/IP connections on port 5432?
Czytałem, że dzieje się tak, ponieważ OS X instaluje własną wersję PostgreSQL, a Homebrew instaluje inną wersję w innym miejscu, a polecenia PostgreSQL szukają w katalogu / tmp /. Będziesz musiał szukać więcej w Stack Overflow, ale zasadniczo łączysz symboliczny PostgreSQL, aby wszystko, co szukało w tej ścieżce tmp, faktycznie znajdowało prawdziwą ścieżkę, jeśli ma to sens.
To jest łącze, w którym znalazłem kilka innych rzeczy do wypróbowania, w szczególności wykonując łącze symboliczne zgodnie z powyższym, Mac OSX Lion Postgres nie akceptuje połączeń w /tmp/. PGSQL.5432 . Nadal chciałbym, żeby ktoś zebrał przyzwoite wyjaśnienie koncepcji instalacji PostgreSQL na OS X i dlaczego to wszystko jest takie trudne.
Najnowsze informacje pomocne przy rozwiązywaniu problemów:
$ which psql // This tells you which PostgreSQL you are using when you run $ psql.
Następnie uruchomić:
$ echo $PATH
Kluczową rzeczą, którą należy wziąć pod uwagę, jest to:
Upewnij się, że wpis ścieżki dla kopii PostgreSQL, którą chcesz uruchomić, ZOSTANIE PRZED ścieżką do PostgreSQL systemu OS X.
Jest to podstawowy wymóg, który decyduje, który PostgreSQL zostanie uruchomiony i to, co mi powiedziano, prowadzi do większości tych problemów.