[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/psql
usr/local/bin/psql
brew doctor
usr/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에 추가한다고 제안하면 황금색입니다.