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이 시스템에 포함되어 있습니다.만약 당신이which psql
아마 아마보될것다니입을 보게 될 입니다.usr/bin/psql
에 usr/local/bin/psql
홈브루의 정확한 것입니다.실행하는 경우brew doctor
추가해야 한다는 메시지가 표시됩니다.usr/local/bin
PATH env 변수의 머리 부분으로 이동합니다.
또는 . 사용셸 편집 및 .bash_profile 파일 이름은 .입니다.export PATH=/usr/local/bin:$PATH
의 최초의 수출로서.PATH
셸 로 저장합니다.source ~/.bash_profile
그리고 이제 다시 괜찮아 질 것입니다.
관심 있으신 분들을 위해 해결책을 정리했습니다.내가 필요한 것은 단지 추가하는 것이었습니다.
host: localhost
내 환경을 위해 데이터베이스.yml에 모든 것이 그레이비였습니다.
저는 마운틴 라이온과 같은 문제를 겪었지만 저에게 효과가 있었던 것은 이 수정 사항뿐이었습니다.
실제 대상이 어디에 있는지 확인합니다.
sudo find / -name .s.PGSQL.5432
이 디렉터리를 만들어야 했습니다.
mkdir /var/pgsql_socket/
그런 다음 위의 검색 결과를 사용하여 다음 심볼 링크를 만듭니다.
ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/
저는 마운틴 라이온에 있는 대부분의 사람들에게 심볼릭 링크가 작동하지 않는 한 찾는 데 시간을 낭비하지 않고 디르를 생성하고 심볼릭 링크를 수행할 수 있다고 생각합니다.
PS - 나의 PostgreSQL은 공식 설치 프로그램을 통해 설치되었습니다.
경로를 변경한 후에도 문제가 지속되는 경우(나처럼) 이 작업을 시도하십시오.
gem pristine pg
문제는 (부분적으로) pgem 자체에 있는 것으로 보입니다.빌드할 때 도메인 소켓이 있어야 할 위치를 파악합니다.도메인 소켓의 위치를 변경한 후 보석을 다시 만들 때까지 적용되지 않는 것 같습니다.
공식 설치 관리자에서 직접 설치한 사용자의 경우 호스트를 명령에 추가하기만 하면 경로를 변경하지 않고 작동합니다.
psql -h localhost -U postgres
저도 같은 문제가 있었고 John Wang의 솔루션을 작동시키는 데 문제가 있었습니다.Darren이 지적했듯이 pgem에 문제가 있습니다.작업을 수행하기 위해 필요한 작업:
gem uninstall pg
그런 다음 다시 설치합니다.
그것이 작동하게 했습니다.
저도 이것에 부딪혔지만, 저는 (홈브루가 아닌) 직접 포스터를 설치했습니다.그런 경우 psql에 대한 이전 경로(/usr/local/bin일 수 있지만 저의 경우 /usr/local/pgsql/bin)를 찾아 $PATH에 추가해야 합니다.
(이전)which psql
=> /usr/bin/psql
(fix) PATH=/usr/local/psql/bin 내보내기:$경로.
(후) 'which psql' => /usr/local/psql/bin
에 대한 존 왕의 제안.source ~/.bash_rc
bash_rc에 추가하면 황금색이 됩니다.
이것은 홈브루용입니까?포트를 통해 다음과 같은 이점을 얻을 수 있습니다.
/opt/local/lib/postgresql91
그러니 내보내기를 사용해야 합니다.
PATH=/opt/local/lib/postgresql91/bin:$PATH
Mac 포트 문제: https://trac.macports.org/ticket/30125
저는 @pilif가 지적한 바와 같이 OS 사용자별 답변이거나 도메인 소켓 대신 TCP를 사용하도록 Postgres를 재맵하기 때문에 가장 많이 업데이트된 답변에 만족하지 않습니다.시스템 레벨에서 기본 경로를 재정렬하여 코어 시스템 경로보다 먼저 Brew의 경로를 확인하는 다른 솔루션을 본 적이 있지만, 이는 다른 모든 애플리케이션 이름 충돌에 영향을 미칠 수 있기 때문에 위험해 보입니다.
이 사이트는 동료가 찾은 솔루션에 대해 자세히 설명합니다.결국 단일 셸 스크립트를 실행하는 것으로 귀결됩니다.
- 별도의 디렉토리에 Postgres 8.4 파일 백업
- 양조장이 포스그레스를 제자리에 설치하는 것을 상징합니다.
이는 시스템 기본 Postgres가 설치된 양조장과 동일하므로 사용자에게 적합한지 여부에 대한 판단을 내려야 한다는 경고와 함께 제공됩니다.저는 특별히 9.x 이상의 Postgres 8.4가 필요하다고 생각하지 않지만 YMMV가 필요합니다.
제게 효과가 있었던 또 다른 가능한 해결책은 포스트마스터 파일을 삭제하여 재설정하는 것입니다.단순 실행:
rm /usr/local/var/postgres/postmaster.pid
로그에서 다음과 같은 오류를 확인할 수 있습니다.
/usr/local/var/postgres/server.log
오류 메시지는 다음과 같습니다.
FATAL: lock file "postmaster.pid" already exists
HINT: Is another postmaster (PID 161) running in data directory
"/usr/local/var/postgres"?
그 후 모든 것이 잘 작동했습니다.
제 경우 공유 메모리 설정이 잘못되어 서버가 시작되지 않았습니다.처음에는 여러 포스트그레스 프로세스가 실행되고 있어서 혼란스러웠지만, 그것들은 표준 시스템 프로세스였습니다.찾다postmaster
프로세스!
공유 메모리 설정을 변경하기만 하면 되었습니다.제 경우에는 경로 설정을 만지작거릴 필요가 없었습니다.
데이터베이스의 호스트를 지정해야 할 수 있습니다.
$PATH를 영구적으로 변경하려면 다음을 시도하십시오.
defaults write $HOME/.MacOSX/environment PATH "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin:/opt/local/bin"
이것은 당신의 것을 다시 쓸 것입니다.~/.MacOSX/environment.plist
.
레일즈는 처음이지만 데이터베이스에 다음 사항을 추가합니다.yml은 나를 위해 일했습니다:
host: localhost
port: 5432
Rails가 TCP 대신 도메인 소켓으로 기본 설정하는 반면 Postgre는SQL은 기본적으로 도메인 소켓을 설정하지 않습니다.
나의 포스트그SQL은 /Library/Postgre에 설치됩니다.SQL을 사용하여 /usr/var 작업을 수행할 수 없습니다.
Woz가 맞는 것 같습니다. 왜냐하면 제가 맥북 프로의 뚜껑을 닫을 때마다 그것은 충돌하기 때문입니다.다음은 충돌 후 작동한 내용입니다.
sudo su postgres -c "/Library/PostgreSQL/9.2/bin/pg_ctl -m fast -D /Library/PostgreSQL/9.2/data restart"
언급URL : https://stackoverflow.com/questions/6770649/repairing-postgresql-after-upgrading-to-osx-10-7-lion
'programing' 카테고리의 다른 글
Mongoose: 유효성 검사 오류 경로가 필요합니다. (0) | 2023.05.21 |
---|---|
특정 파일에 대한 변경 사항만 선택하는 방법은 무엇입니까? (0) | 2023.05.21 |
Node.js 프로젝트의 폴더 구조 (0) | 2023.05.21 |
셸 if 문에서 여러 조건을 나타내는 방법은 무엇입니까? (0) | 2023.05.21 |
연결 uri / url과 함께 pg_dump를 사용하는 방법은 무엇입니까? (0) | 2023.05.21 |