다른 프로젝트와 마찬가지로 프로젝트에서 rake db : migrate를 실행하거나 Ruby on Rails 3.2 애플리케이션 에 대한 대부분의 데이터베이스 작업을 시도 할 때이 오류가 발생 합니다.
PGError (서버에 연결할 수 없습니다 : 해당 파일 또는 디렉토리가 없습니다. 서버가 로컬로 실행 중이고 Unix 도메인 소켓 "/tmp/.s.PGSQL.5432"에서 연결을 허용합니까?
오래 전에 Homebrew 와 함께 PostgreSQL 을 설치 했으며 MongoDB를 설치 한 후 최근 PostgreSQL 설치가 동일하지 않았습니다. OS X v10.6 Snow Leopard를 실행하고 있습니다.
무엇이 잘못되었고 PostgreSQL이 Mac에서 어떻게 설정되어 있어야하는지 어떻게 더 잘 이해합니까?
지금까지는 PostgreSQL이 실행되고 있지 않다고 생각합니다 (?).
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
그러나 이것은 PostgreSQL이 실행 중임을 알려줍니까?
✪ launchctl load -w /usr/local/Cellar/postgresql/9.1.4/homebrew.mxcl.postgresql.plist (ruby-1.9.2-p136)
homebrew.mxcl.postgresql: Already loaded
이 문제를 어떻게 해결합니까? 내가 뭘 보지 못합니까?
PS : ~/Library/LaunchAgents
두 개의 PostgreSQL .plist 파일이 포함되어 있습니다. 그것이 관련이 있는지 확실하지 않습니다.
org.postgresql.postgres.plist
homebrew.mxcl.postgresql.plist
나는 다음을 시도하고 아래와 같이 결과를 얻었다.
$ 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?
OS X가 자체 버전의 PostgreSQL을 설치하고 Homebrew가 다른 위치에 다른 버전을 설치하고 PostgreSQL 명령이 / tmp / 디렉토리를 찾고 있기 때문에 이것이 발생했기 때문에 읽었습니다. Stack Overflow에서 더 많은 것을 검색해야하지만 기본적으로 PostgreSQL을 symlink하여 해당 tmp 경로를 찾는 것이 실제로 실제 경로를 찾을 수 있도록하십시오.
이것은 내가 시도 할 몇 가지 더 많은 것을 발견 한 링크입니다. 특히 위의 링크를 수행하면 Mac OSX Lion Postgres는 /tmp/.s.PGSQL.5432의 연결을 허용하지 않습니다 . 나는 여전히 누군가 누군가 OS X에 PostgreSQL을 설치하는 개념과 그것이 왜 그렇게 어려운지에 대해 잘 설명하기를 바랍니다.
문제 해결에 도움이되는 최신 정보 :
$ which psql // This tells you which PostgreSQL you are using when you run $ psql.
그런 다음 다음을 실행하십시오.
$ echo $PATH
고려해야 할 핵심 사항은 다음과 같습니다.
OS X 시스템의 PostgreSQL에 대한 경로 전에 실행하려는 PostgreSQL 사본의 경로 항목이 COMES인지 확인하십시오.
이것은 어떤 PostgreSQL을 실행할지 결정하는 핵심 요구 사항이며, 내가 들었던 내용은 이러한 문제의 대부분을 초래합니다.