[ruby-on-rails] OSX 10.7 Lion으로 업그레이드 한 후 Postgresql 복구

최근에 OSX 10.7로 업그레이드하여 psql 서버에 연결하려고 할 때 레일 설치가 완전히 중단되었습니다. 명령 줄에서 사용하면

psql -U postgres

완전히 작동하지만 동일한 사용자 이름과 비밀번호로 레일 서버 또는 콘솔을 실행하려고하면이 오류가 발생합니다.

...activerecord-3.0.9/lib/active_record/connection_adapters/postgresql_adapter.rb:950:in `initialize': could not connect to server: Permission denied (PGError)
Is the server running locally and accepting
    connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

무슨 일이 일어나고 있는지에 대한 아이디어는 매우 도움이 될 것입니다! 감사!



답변

PATH 문제입니다. Mac OSX Lion은 이제 시스템에 Postgresql을 포함합니다. 당신이하는 경우 HomeBrew의 올바른 것 대신에 which psql볼 수 있습니다 . 실행 하면 PATH env 변수의 헤드에 추가해야한다는 메시지가 표시 됩니다.usr/bin/psqlusr/local/bin/psqlbrew doctorusr/local/bin

.bash_profile 또는 .profile을 편집하거나 사용중인 쉘을 편집하십시오.
export PATH=/usr/local/bin:$PATH

PATH그런 다음 첫 번째 내보내기로 셸 세션을 종료하거나 파일을 소스로 가져 오면 source ~/.bash_profile이제 다시 정상입니다.


답변

관심있는 분들을 위해 솔루션을 정리했습니다. 내가 필요한 건

host: localhost

내 환경에 대한 database.yml에 모든 것이 그레이비였습니다.


답변

Mountain Lion 에서이 문제가 발생했지만 나를 위해 일한 유일한 것은 이 수정 이었습니다 .

실제 목표가 어디에 있는지 확인하십시오.

sudo find / -name .s.PGSQL.5432

이 디렉토리를 만들어야했습니다.

mkdir /var/pgsql_socket/

그런 다음 위의 찾기 결과를 사용하여 다음 심볼릭 링크를 만듭니다.

ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/

Mountain Lion의 대부분의 사람들은 단지 dir을 만들고 symlink를 수행 할 수 있으며 symlink가 작동하지 않는 한 찾기 작업을 수행하는 데 시간을 낭비하지 않을 것으로 생각합니다.

추신-내 PostgreSQL은 공식 설치 프로그램을 통해 설치되었습니다.


답변

경로를 변경 한 후에도 문제가 지속되면 (이것처럼) 시도하십시오 …

gem pristine pg

문제는 (부분적으로) pg gem 자체에 있습니다. 빌드 될 때 도메인 소켓이 어디에 있어야하는지 알아냅니다. 사실 이후 도메인 소켓의 위치를 ​​변경하면 gem을 다시 빌드 할 때까지 적용되지 않는 것 같습니다.


답변

공식 설치 프로그램에서 직접 설치 한 사용자는 호스트를 명령에 추가하기 만하면 경로가 변경되지 않습니다.

psql -h localhost -U postgres


답변

나는 같은 문제가 있었고 John Wang의 솔루션을 작동시키는 데 문제가있었습니다. 대런은 pg gem에 문제가 있다고 언급했다. 작동하려면 다음이 필요했습니다.

gem uninstall pg

그런 다음 다시 설치하십시오.

어느 것이 효과가 있었습니까?


답변

나는 이것도 만났지 만 postgres를 직접 설치했다 (homebrew가 아닌). 이 경우 psql의 이전 경로 (/ usr / local / bin 일 수 있지만 / usr / local / pgsql / bin 일 수 있음)를 찾아 $ PATH 앞에 추가해야합니다.

(이전)
which psql=> / usr / bin / psql

(수정) 내보내기 PATH = / usr / local / psql / bin : $ PATH

(이후)`which psql ‘=> / usr / local / psql / bin

John Wang이 source ~/.bash_rc나중에 bash_rc에 추가한다고 제안하면 황금색입니다.