로컬 PostgreSQL에 연결할 수 없습니다.


124

나는 지역 개발 환경을 지루하게 만들었습니다.

내 모든 로컬 Rails 앱에서 이제 오류가 발생합니다.

PGError
could not connect to server: Permission denied
    Is the server running locally and accepting
    connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

그 원인이 무엇인지 모르겠습니다.

솔루션을 검색하는 동안 번들로 제공되는 모든 gem, 업데이트 된 시스템 gem, 업데이트 된 MacPorts를 업데이트했습니다. 기쁨이 없습니다.

다른 사람들은 어떤 버전의 Postgres를 사용해야하는지 (예 : OSX 버전 또는 MacPorts 버전) 혼란으로 인해 OSX Leopard에서 Lion으로 업그레이드 할 때이 문제를보고했습니다. 저는 몇 달 동안 Lion을 운영해 왔기 때문에 지금 이런 일이 발생해야한다는 것이 이상해 보입니다.

나는 문제가 무엇인지 먼저 이해하지 않고 너무 많이 엉망으로 만드는 것을 꺼린다. 이것을 체계적으로 디버깅하려면 어떻게해야합니까?

내 시스템에있는 PostgreSQL 버전 수, 액세스중인 버전 및 위치를 확인하려면 어떻게해야합니까? 잘못된 PostgreSQL을 사용하는 경우이 문제를 어떻게 해결합니까?

멍청한 질문에 대해 죄송합니다. 나는 이것이 어떻게 작동하는지 아직도 배우고있다! 모든 포인터에 감사드립니다.

편집하다

아래 제안 및 의견을 기반으로 일부 업데이트되었습니다.

나는 오류 pg_lsclusters를 반환하는 실행 을 시도했습니다 command not found.

그런 다음 내 pg_hba.conf 파일을 로컬로 시도하고 다음 세 가지 샘플 파일을 찾았습니다.

/opt/local/share/postgresql84/pg_hba.conf.sample
/opt/local/var/macports/software/postgresql84/8.4.7_0/opt/local/share/postgresql84/pg_hba.conf.sample
/usr/share/postgresql/pg_hba.conf.sample

그래서 3 가지 버전의 PSQL이 설치되어 있다고 가정합니까? Macports, OSX 기본값 및 ???.

그런 다음 ps -ef | grep postgres반환 된 launchctl 시작 스크립트 를 검색했습니다.

0    56     1   0 11:41AM ??         0:00.02 /opt/local/bin/daemondo --label=postgresql84-server --start-cmd /opt/local/etc/LaunchDaemons/org.macports.postgresql84-server/postgresql84-server.wrapper start ; --stop-cmd /opt/local/etc/LaunchDaemons/org.macports.postgresql84-server/postgresql84-server.wrapper stop ; --restart-cmd /opt/local/etc/LaunchDaemons/org.macports.postgresql84-server/postgresql84-server.wrapper restart ; --pid=none
  500   372     1   0 11:42AM ??         0:00.17 /opt/local/lib/postgresql84/bin/postgres -D /opt/local/var/db/postgresql84/defaultdb
  500   766   372   0 11:43AM ??         0:00.37 postgres: writer process                                                                                                                                                                                                                                                                                                                   
  500   767   372   0 11:43AM ??         0:00.24 postgres: wal writer process                                                                                                                                                                                                                                                                                                               
  500   768   372   0 11:43AM ??         0:00.16 postgres: autovacuum launcher process                                                                                                                                                                                                                                                                                                      
  500   769   372   0 11:43AM ??         0:00.08 postgres: stats collector process                                                                                                                                                                                                                                                                                                          
  501  4497  1016   0 12:36PM ttys000    0:00.00 grep postgres

http://pastebin.com/Gj5TpP62 에 postgresql84-server.wrapper의 내용을 게시했습니다 .

실행을 시도했지만 port load postgresql184-server오류가 발생했습니다 Error: Port postgresql184-server not found.

이 문제를 해결하는 방법은 여전히 ​​매우 혼란스럽고 "for dummies"포인터에 감사드립니다.

감사!

EDIT2

이 문제는 daemondo에 문제가 발생한 후에 시작되었습니다. 내 로컬 Rails 앱이 "daemondo gem을 찾을 수 없습니다"라는 줄을 따라 응용 프로그램 오류와 함께 충돌했습니다. 그런 다음 일련의 번들 업데이트, gem 업데이트, 포트 업데이트 및 brew 업데이트를 통해 문제를 찾아 냈습니다.

이 오류가 daemondo의 문제 일 수 있습니까?


앱이 연결되면 유닉스 도메인 소켓 대신 tcp 포트를 통해 연결됩니다. 따라서 최소한 localhost에서 네트워크 연결을 허용하도록 postgres를 구성해야합니다.
Paul Tomblin 2011

왜 그렇게 믿습니까? 분명히 드라이버는 유닉스 소켓을 통해 연결을 시도하고 있습니다. 그들은 잘못된 장소에서 소켓을 찾지 만.
Milen A. Radev 2011


바로 그거죠. Mac-thing 인 것 같습니다. OP는 포스트 마스터가 실행 중인지 확인한 후 -h 플래그를 사용할 수 있습니다.
wildplasser 2011

의 출력 pg_lsclusterspg_hba.conf파일을 게시 하십시오.
tscho

답변:


66

이것은 정말로 파일 권한 오류처럼 보입니다. Unix 도메인 소켓은 파일이며 다른 것과 마찬가지로 사용자 권한이 있습니다. 데이터베이스에 액세스하려는 OSX 사용자에게 소켓 파일에 액세스 할 수있는 파일 권한이없는 것처럼 보입니다. 이를 확인하기 위해 Ubuntu 및 psql에서 동일한 오류를 생성하기 위해 몇 가지 테스트를 수행했습니다 (아래에 포함됨).

소켓 파일과 해당 디렉토리 /var/var/pgsql_socket. Rails 앱 (OSX 사용자)에는 이러한 디렉터리에 대한 실행 (x) 권한 (바람직하게는 모든 사람에게 권한 부여)이 있어야하며 소켓에는 전체 권한 (wrx)이 있어야합니다. ls -lAd <file>이를 확인 하는 데 사용할 수 있으며 그중 하나가 심볼릭 링크 인 경우 링크가 가리키는 파일이나 디렉토리를 확인해야합니다.

디렉토리에 대한 권한을 직접 변경할 수 있지만 소켓은 postgresql.conf. 이것은 다음과 같은 디렉토리에서 찾을 수 있습니다.pg_hba.conf (어떤 것을 알아 내야 . 권한을 설정 한 후에는 postgresql을 다시 시작해야합니다.

# postgresql.conf should contain...
unix_socket_directory = '/var/run/postgresql'       # dont worry if yours is different
#unix_socket_group = ''                             # default is fine here
#unix_socket_permissions = 0777                     # check this one and uncomment if necessary.

편집하다:

나는 구글에 대한 빠른 검색을 해봤는데, 당신은 그것이 관련이 있는지 알아보고 싶을 것이다. 이것은 어떤 시도로 이어질 수 있습니다.find 구성 파일 실패 할 수 있습니다.

http://www.postgresqlformac.com/server/howto_edit_postgresql_confi.html


오류 메시지 :

pg_hba.conf에서 사용자를 찾을 수 없습니다.

psql: FATAL:  no pg_hba.conf entry for host "[local]", user "couling", database "main", SSL off

사용자가 비밀번호 인증 실패 :

psql: FATAL:  password authentication failed for user "couling"

유닉스 소켓 파일 누락 :

psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

유닉스 소켓이 존재하지만 서버가 그것을 수신하지 않습니다.

psql: could not connect to server: Connection refused
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

유닉스 소켓 파일에 대한 잘못된 파일 권한 :

psql: could not connect to server: Permission denied
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

1
@couling이 아이디어에 감사드립니다. 이것은 올바른 방향으로 느껴집니다. 그러나 내 설정에 매우 이상한 것이 있습니다. 이것은 최근까지 완벽하게 작동하고 있음을 명심하십시오. 내 시스템에서 세 개의 postgres 디렉토리를 살펴 봤는데 모두 conf.sample 파일 (pg_hba, pg_ident, pg_service 등)이 포함되어 있지만 .conf 파일은 없습니다. 그렇지 않습니까? 또한 .s.PGSQL.5432를 포함해야하는 디렉토리가 비어 있습니다. 대신 /private/tmp/.s.PGSQL.5432.lock에있는 파일이 있습니다. PSpostgres 프로세스를 반환하므로 실행됩니다. 혼란스러워!
Andy Harvey

추가 링크를 추가했습니다. 내가 아는 한 postgresql.conf 없이는 실제로 postgresql을 가질 수 없습니다 (이름이 바뀌 었더라도). 당신의 첫 번째 임무는 이것을 찾는 것입니다.
Philip Couling 2011

1
내 디렉토리를 탐색하고 올바른 파일을 찾는 데 시간이 좀 걸렸지 만 실제로 문제였습니다. 매우 상세한 답변에 감사드립니다. 올바른 디렉토리를 찾았 으면 postgresql.conf에 소켓 디렉토리, 데이터 디렉토리, hba_file 및 ident_file을 설정해야했습니다. 감사합니다!
Andy Harvey

1
일부 사람들에게 도움이 될 수 있습니다. brew를 사용하여 내 계정에 postgres를 설치했습니다. 제 경우에는 / var / pgsql_socket / 폴더가 _postgres 사용자가 소유하고 소유권을 내 계정 (darren)으로 변경하여이 문제를 해결했습니다. brew가 처음에이 폴더의 소유권을 올바르게 설정하지 않은 이유를 모르겠습니다 ...?
Darren Jensen 2012

감사합니다. 나는 연결할 수 없었고 unix_socket_directory를 설정하는 것이 올바른 일이었습니다.
Ryan Bigg

41

내 직감은 이것이 (다시) mac / OSX-thing이라는 것입니다. 프론트 엔드와 백 엔드는 유닉스 도메인 소켓 ( 접합 지점 역할을하는 )에 대해 다른 위치를 가정합니다 .

체크리스트 :

  • Postgres 실행 중 : ps aux | grep postgres | grep -v grep트릭을 수행해야합니다.
  • 소켓은 어디에 있습니까? find / -name .s.PGSQL.5432 -ls(소켓은 / tmp에있었습니다. 거기에서 찾을 수 있습니다)
  • (unix-domain) 소켓을 찾으더라도 클라이언트는 다른 위치를 사용할 수 있습니다. (이것은 배포본을 혼합하거나 배포본이 어딘가에 설치되어 있고 다른 곳에 (예 : 소스에서) 설치가있는 경우) 클라이언트와 서버가 서로 다른 랑데부 주소를 사용하는 경우 발생 합니다.

postgres가 실행 중이고 소켓이 실제로 존재하는 경우 다음을 사용할 수 있습니다.

  • psql -h /the/directory/where/the/socket/was/found mydbname

(유닉스 도메인 소켓에 연결을 시도 함)

; 이제 psql 프롬프트가 표시됩니다. 시도한 \d다음 \q종료하십시오. 시도해 볼 수도 있습니다.

  • psql -h localhost mydbname.

(localhost (127.0.0.1)에 연결을 시도합니다.)

권한이 충분하지 않아 이러한 시도가 실패하면 pg_hba.conf (및 SIGHUP 또는 재시작)를 변경할 수 있습니다.이 경우 : 로그도 확인하십시오.

비슷한 질문 : Postgres를 시작할 수 없습니다 .

참고 : psql 프롬프트에 액세스 할 수있는 경우이 문제에 대한 빠른 수정은 다음 config/database.yml을 추가하는 것입니다.

host: localhost

또는 다음을 추가 할 수 있습니다.

host: /the/directory/where/the/socket/was/found

나의 경우에는, host: /tmp


1
@wildplasser 귀하의 답변에 감사드립니다. 이것은 나를 올바른 방향으로 시작하게했고 couling의 자세한 답변이 해결책을주었습니다.
Andy Harvey

6
내 database.yml에 호스트 : localhost를 추가하면 문제가 해결되었습니다. 감사합니다 :)
Automatico

1
내 것은 / private / .... 이상하다. 양조 설치했지만이 노트북은 이전에도 문제가있었습니다. 기묘한. 그 database.yml이 핵심이었습니다!
pjammer

4
기묘한. 내 database.yml에 "localhost"를 추가하는 것도 작동했지만 그 이유는 무엇입니까? 나는 전에 그것을 가지고 있지 않았고 모든 것이 잘 작동했습니다. 근데 늦게 추가 한 게 없어서 갑자기 이미 그렇게 된 것 같아요. > _ <
인덱스

1
저에게 트릭은 소켓 경로였습니다. / var / run이 아닌 / run에있었습니다. 감사합니다!
qodeninja

26

pg gem (gem uninstall pg )을 제거한 다음 다시 설치하십시오 . 번 들러를 사용하는 경우 bundle install, 그렇지 않으면 gem install pg. 또한 경로가 올바른 버전을 선택하는지 확인하십시오. Lion에는 posgresql 버전이 있고 (이전 버전은 그렇지 않음) 로컬에 설치된 버전 이전의 경로에있을 수 있습니다 (예 : MacPorts, homebrew).

제 경우에는 postgresql의 homebrew 설치, postgresql, rails 등을 업데이트 한 다음이 오류가 발생했습니다. pg gem을 제거하고 다시 설치하면 나에게 도움이되었습니다.


8
간부 보석을 번들 깨끗한 페이지 <== 또한 트릭을 할 것입니다
벤 Walding

OP의 오류는 여러 가지 원인으로 인해 발생할 수 있다는 데 의심의 여지가 없지만 이것이 나를 위해 일한 해결책입니다.
redhotvengeance

20

소켓 파일의 위치는 컴파일 타임에 gem에 구워집니다. 따라서 pg gem을 다시 빌드해야합니다.

gem pristine pg
# or
bundle exec gem pristine pg

이렇게하면 특정 문제가 해결됩니다.


Postgres를 9.1x에서 9.3x로 업그레이드 한 후이 질문에 설명 된 문제가 발생하기 시작했습니다. 이 대답은 나를 위해 수정했습니다 (내 database.yml에 'localhost'를 추가했지만이 방법이 더 좋습니다).
Joshua Flanagan 2013

16

유사한 오류가 발생하는 경우 :

psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

이것은 트릭을 할 수 있습니다 (나를 위해 그랬습니다).

initdb /usr/local/var/postgres -E utf8

OSX / Brew를 사용하지 않는 경우 지정된 디렉토리는 달라야합니다.

참고 : 이것은 위에 표시된 정확한 오류 메시지는 아니지만이 스레드는 해당 오류 메시지의 첫 번째 결과입니다.


6
나는 항상이 문제가 때때로 발생하지만이 솔루션으로 처음으로 해결합니다. 또한 rm -fr /usr/local/var/postgres실행 하기 전에 해야했습니다initb
Raf

1
이 작업을 수행 한 후 (Neal과 Raf 모두) "치명적인"데이터베이스가 존재하지 않음 오류가 발생했습니다. 그런 다음 "rake db : create : all"및 "rake db : migrate"를 실행하고 마침내 모든 것이 다시 작동했습니다.
Deborah

나는 또한 rm -rf /usr/local/var/postgres그때 해야 했다 initdb /usr/local/var/postgres -E utf8. 그러나이 작업을 수행 할 때 postgres가 실행되고 있지 않은지 확인하십시오. 그렇지 않으면 디렉터리가 거의 즉시 다시 생성됩니다.
Josh W Lewis

8

나를 위해이 오류를 해결 한 것은 postgres 디렉토리에서 postmaster.pid라는 파일을 삭제하는 것입니다. 단계별 지침은 다음 링크를 사용하여 내 질문 / 답변을 참조하십시오. 내 문제는 파일 권한과 관련이 없습니다.

psql : 서버에 연결할 수 없음 : 해당 파일 또는 디렉토리 없음 (Mac OS X)

이 질문에 대답하는 사람들은 많은 게임을 떨어 뜨 렸습니다. 감사합니다! 나는 내가 할 수있는 모든 것을 찬성했다


여기에서 허용되는 답변은 파일 권한 문제를 지적하기 때문에 귀하의 게시물과이 게시물은 관련이없는 것으로 보입니다.
Andrew Barber

7

이것이 부분적으로 wildplasser의 답변을 기반으로 오류 메시지를 해결 한 방법입니다.

find / -name .s.PGSQL.5432 -ls 2> /dev/null
  => ... /tmp/.s.PGSQL.5432

따라서 내 소켓 또는 기타가 있지만 클라이언트는 다음에서 찾습니다.

/var/run/postgresql/.s.PGSQL.5432

따라서 간단히 다음과 같은 심볼릭 링크를 만드십시오 /tmp/.s.PGSQL.5432.

sudo ln -s /tmp/.s.PGSQL.5432 /var/run/postgresql/.s.PGSQL.5432

이것이 누구에게나 도움이되기를 바랍니다. 잘못된 것 같지만 작동합니다!


1
이것은 나를 위해 일했습니다 : sudo ln -s /tmp/.s.PGSQL.5432 /var/pgsql_socket/.s.PGSQL.5432
ardochhigh

고맙습니다 :) 이것은 도움이되었습니다. 그러나 symlink를 만들기 전에 sudo mkdir /var/run/postgresql폴더 를 만드는 것을 잊지 마십시오 (내 경우 id가 존재하지 않았으며 9.3.X 페이지의 설치 프로그램에서 생성되지 않았습니다).
kovpack 2014

2
아,이 솔루션은 재부팅 할 때마다 다시 실행해야하는 '일회성'솔루션으로 판명되었습니다. Rails의 경우 다른 솔루션을 찾았습니다-데이터베이스 구성 파일 수정 (아래 답변 추가).
kovpack 2014

6

나는 새로운 postgres로 업그레이드 한 후에 이것을 받기 시작했습니다. 데이터 파일을 보유하고 있다는 것을 몰랐습니다.

먼저 postgres 서버를 시작하려고했습니다.

postgres -D /usr/local/var/postgres

이것이 내가이 오류를 본 방법입니다.

FATAL:  database files are incompatible with server
DETAIL:  The data directory was initialized by PostgreSQL version 9.0, which is not compatible with this version 9.3.5.

그래서 비 호환성 오류와 관련된이 답변을 찾았습니다 .https : //serverfault.com/questions/342626/how-do-i-upgrade-postgresl-database-incompatibility-error

이것이 수정 된 것입니다.

mv /usr/local/var/postgres /usr/local/var/postgres.old
initdb -D /usr/local/var/postgres

4

PSQL과 Django에서 비슷한 문제가 있음을 확인하기 만하면

내 psql 서버가 올바르게 종료되지 않았고 postgres 폴더에 postmaster.pid 파일이 여전히 존재하기 때문에 (적절한 종료시 자동으로 삭제되어야 함) 것처럼 보였습니다.

이 모든 것을 삭제했습니다.


2
이것이 나를 위해 문제를 해결 한 것입니다. 컴퓨터가 멈춰서 하드 셧다운을해야했습니다. 내가 시작했을 때 그것은 백업, 포스트 그레스는 말하고 있었다 psql: could not connect to server: No such file or directory.제거 postmaster.pid에서 /usr/local/var/postgres다시 만든 모든 작동합니다.
Ryan Epp 2013

1
이것은 나에게도 일어난 일이었습니다. 커널 패닉으로 인해 Mac이 다시 시작되었고 다시 작업하기 전에 postmaster.pid를 삭제해야했습니다.
Ben

4

이 같은 오류가 발생했습니다 (에서 오류가 발생한 것으로 밝혀졌습니다 postmaster.pid. postgres를 실행하고 다시 실행하는 방법은 다음 과 같습니다 ( 수정을 위해 Ricardo Burillo에 감사드립니다 )).

$ rm /usr/local/var/postgres/postmaster.pid 
$ pg_resetxlog -f /usr/local/var/postgres

pg_resetxlog반환 된`lock file "postmaster.pid"가 존재 하지만 이것은 나를 위해 일했습니다 .
엘리스

3

레일과 함께 postgresql을 사용하려고 할 때 비슷한 문제가 발생했습니다. 새 버전의 gem pg를 사용하도록 Gemfile을 업데이트하면이 문제가 해결됩니다. (gem pg 버전 0.16.0 작동). Gemfile에서 다음을 사용하십시오.

gem 'pg', '0.16.0'

그런 다음 다음을 실행하여 gem을 업데이트하십시오.

bundle install --without production
bundle update
bundle install

1
이것은 나에게도 문제를 해결했습니다. 저는 Rails 4.0 베타를 거치면서 0.15.1에 있었고 이제는 Ruby 2.0.0을 사용하고 있습니다. 0.16.0 페이지로 업그레이드하면 문제가 해결되었습니다.
bratsche 2013-08-22

4.1.0.beta1에 대한 문제 해결
Andreas

3

이 오류에 대한 많은 주제를 읽었으며 해결책은 단순히 다음을 사용하여 postgres를 다시 시작하는 것입니다.

sudo service postgresql restart

여기에 언급되지 않았습니다.


3
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

나는 잠시 동안 해결책을 찾고 있습니다. 그래서 이것은 나에게도 문제를 해결했습니다 (reinit db).

rm -r /usr/local/var/postgres  
initdb /usr/local/var/postgres -E utf8  
pg_ctl -D /usr/local/var/postgres -l logfile start

brew와 함께 OS X 10.11.3을 사용합니다.


2

이것은 오늘 내 Macbook의 배터리가 죽은 후에 나에게 일어났습니다. 부적절한 종료로 인해 발생할 수 있다고 생각합니다. 내 경우와 같은 경우에는 postmaster.pid를 삭제하면됩니다.

폴더로 이동

cd /usr/local/var/postgres

postmaster.pid가 있는지 확인하십시오.

ls

postmaster.pid 제거

rm postmaster.pid

2

제 경우에는 이전 솔루션 중 어느 것도 좋지 않았습니다. 소켓을 사용하는 대신 Rails 구성 파일에서 TCP host+ port번호를 사용할 수 있습니다 . 따라서 database.yml파일에 다음과 같이 두 줄을 추가하십시오.

...
adapter: postgresql
encoding: unicode
pool: 5
host: localhost
port: 5432

이것은 내 문제를 해결했습니다. :)

이 수정 사항을 사용하기 전에 :

sudo mkdir /var/run/postgresql
sudo ln -s /tmp/.s.PGSQL.5432 /var/run/postgresql/.s.PGSQL.5432

그러나 재부팅 할 때마다 /tmp/.s.PGSQL.5432삭제되고이 명령을 반복해야했습니다. 솔루션은 작동하지만 끔찍하므로 Rails 데이터베이스 구성 파일을 수정하는 것이 좋습니다. :)


2

Django로 Posgtres를 설정할 때이 오류가 발생했습니다. Back Track을 사용하고 있으며 Postgres가 설치된 상태로 제공됩니다. 설정이 문제라고 가정합니다. 완전히 제거한 다음 다시 설치하여 수정했습니다.

sudo apt-get remove postgresql
sudo apt-get purge postgresql

이제 실행 :

apt-get --purge remove postgresql\*

시스템에서 모든 PostgreSQL을 제거합니다. 빈 메타 패키지 일 뿐이므로 postgres 패키지를 제거하는 것만으로는 충분하지 않습니다.

모든 PostgreSQL 패키지가 제거되면 다음을 실행합니다.

rm -r /etc/postgresql/
rm -r /etc/postgresql-common/
rm -r /var/lib/postgresql/
userdel -r postgres
groupdel postgres

이제 다음을 수행 할 수 있습니다.

apt-get install postgresql

1

여기에 MacOSX. homebrew를 사용하여 postresql 설치를 9.1 이전 버전에서 9.1.2로 업그레이드 한 후에도 동일한 문제가 발생했습니다. (그런데, pg_dump로 업그레이드하기 전에 데이터베이스를 덤프하는 것을 잊지 마십시오. 9.1 이전 데이터베이스는 호환되지 않습니다.) 같은 문제, 같은 오류 메시지.

pg gem을 제거하면 트릭이 생겼습니다. 나는 문제를 발견하기 위해 실제로 꽤 춤을 춰야했다. 먼저 전역 보석 제거를 수행하여 모든 오래된 보석의 덱을 지 웠습니다 (몇 개 있음). 그런 다음 Gemfile에서 pg를 제거하고 다시 번들로 묶고 pg 참조를 복원하고 다시 한 번 리바운드했습니다.

그 후, 그것은 매력처럼 작동했습니다.


1

Hello world :)
나에게 가장 좋지만 이상한 방법은 다음 일을하는 것이 었습니다.

1) postgres93.app 또는 다른 버전을 다운로드하십시오 . 이 앱을 / Applications / 폴더에 추가하십시오.

2) 파일 .bash_profile(내 홈 디렉토리에 있음)에 행 (명령)을 추가합니다 .

export PATH = / Applications / Postgres93.app / Contents / MacOS / bin / : $ PATH
에서 PATH psql입니다 Postgres93.app. 행 (명령)은 콘솔이 시작될 때마다 실행됩니다.

3) 폴더 Postgres93.app에서 시작 /Applications/합니다. 로컬 서버를 시작합니다 (포트는 "5432"이고 호스트는 "localhost").

4) 이 모든 조작 후에 나는 $ createuser -SRDP user_name다른 명령 을 실행 하고 작동하는 것을보고 기뻤습니다 ! Postgres93.app시스템이 시작될 때마다 실행되도록 만들 수 있습니다.

5) 또한 데이터베이스를 그래픽으로보고 싶다면 PG Commander.app. postgres DB를 예쁜 데이터 테이블로 보는 좋은 방법입니다.

물론 로컬 서버에만 유용합니다. 이 지침 이이 문제에 직면 한 다른 사람들에게 도움이된다면 기쁠 것입니다.


0

나는이 문제가 나를 괴롭 혔고 추가 조사 (실행 중 rake db:setup)에서 레일이 이전에 사용 된 postgres 인스턴스에 연결하려고 시도하고 있음을 알았습니다. 환경 변수에 DATABASE_URL로 저장되었습니다.

수정 사항 : unset DATABASE_URL

출처 : https://stackoverflow.com/a/17420624/2577622


0

이 문제에 대한 대부분의 솔루션을 시도했지만 작동하지 못했습니다.

나는 실행 lsof -P | grep ':5432' | awk '{print $2}'프로세스 실행의 PID를 보였다있다. 그러나 나는 그것을 죽일 수 없었다 kill -9 <pid>.

내가 실행했을 때 pkill postgresql프로세스가 마침내 중지되었습니다. 도움이 되었기를 바랍니다.


0
gem uninstall pg

Homebrew를 사용하는 OS X :

gem install pg -- --with-pg-config=/usr/local/bin/pg_config
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.