Postgres가 서버에 연결할 수 없습니다


415

업데이트 및 양조 업그레이드를 수행 한 후 postgres에 문제가 발생했습니다. postgres를 제거하고 다시 설치하려고했지만 작동하지 않았습니다.

이것은 오류 메시지입니다. (rake db : migrate를 수행하려고 할 때도이 오류 메시지가 나타납니다)

$ psql
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"?

어떻게 해결할 수 있습니까?

맥 버전 : 산 사자.

사제 버전 : 0.9.3

postgres 버전 : psql (PostgreSQL) 9.2.1

그리고 이것이 내가 한 일입니다.

12:30 ~/D/works$ brew uninstall postgresql
Uninstalling /usr/local/Cellar/postgresql/9.2.1...
12:31 ~/D/works$ brew uninstall postgresql
Uninstalling /usr/local/Cellar/postgresql/9.1.4...
12:31 ~/D/works$ psql --version
bash: /usr/local/bin/psql: No such file or directory
12:33 ~/D/works$ brew install postgresql
==> Downloading http://ftp.postgresql.org/pub/source/v9.2.1/postgresql-9.2.1.tar.bz2
Already downloaded: /Library/Caches/Homebrew/postgresql-9.2.1.tar.bz2
......
......
==> Summary
/usr/local/Cellar/postgresql/9.2.1: 2814 files, 38M, built in 2.7 minutes
12:37 ~/D/works$ initdb /usr/local/var/postgres -E utf8
The files belonging to this database system will be owned by user "laigary".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.UTF-8".
The default text search configuration will be set to "english".

initdb: directory "/usr/local/var/postgres" exists but is not empty
If you want to create a new database system, either remove or empty
the directory "/usr/local/var/postgres" or run initdb
with an argument other than "/usr/local/var/postgres".
12:39 ~/D/works$ mkdir -p ~/Library/LaunchAgents
12:39 ~/D/works$   cp /usr/local/Cellar/postgresql/9.2.1/homebrew.mxcl.postgresql.plist ~/Library/LaunchAgents/
12:39 ~/D/works$   launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
homebrew.mxcl.postgresql: Already loaded
12:39 ~/D/works$ pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
server starting
12:39 ~/D/works$ env ARCHFLAGS="-arch x86_64" gem install pg
Building native extensions.  This could take a while...
Successfully installed pg-0.14.1
1 gem installed
12:42 ~/D/works$ psql --version
psql (PostgreSQL) 9.2.1
12:42 ~/D/works$ psql
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"?

이제 howbrew를 다시 설치 한 후을 사용할 때 $ psql오류 메시지가 표시되지 않습니다.

그러나 rake db:migrate레일 앱에서 실행 하면 다음과 같이 표시됩니다.

could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `initialize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `new'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `connect'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:329:in `initialize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `new'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `postgresql_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:309:in `new_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:319:in `checkout_new_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:241:in `block (2 levels) in checkout'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:236:in `loop'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:236:in `block in checkout'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:233:in `checkout'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:96:in `block in connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:95:in `connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:404:in `retrieve_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_specification.rb:170:in `retrieve_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_specification.rb:144:in `connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:107:in `rescue in create_database'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:51:in `create_database'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `block (3 levels) in <top (required)>'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `each'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `block (2 levels) in <top (required)>'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:205:in `call'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:205:in `block in execute'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:200:in `each'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:200:in `execute'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:158:in `block in invoke_with_call_chain'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:151:in `invoke_with_call_chain'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:144:in `invoke'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:116:in `invoke_task'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:in `block (2 levels) in top_level'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:in `each'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:in `block in top_level'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:133:in `standard_exception_handling'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:88:in `top_level'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:66:in `block in run'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:133:in `standard_exception_handling'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:63:in `run'
/usr/local/bin/rake:32:in `<main>'
Couldn't create database for {"adapter"=>"postgresql", "encoding"=>"unicode", "database"=>"riy_development", "pool"=>5, "username"=>nil, "password"=>nil}

마지막으로 해결책을 찾습니다.

$ sudo mkdir /var/pgsql_socket/
$ sudo ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/

이 솔루션은 조금 까다 롭지 만 작동합니다. 누구나 더 나은 솔루션을 갖기를 바랍니다.

최신 정보

이것은 나에게도 효과적입니다.

rm /usr/local/var/postgres/postmaster.pid

3
나는 똑같은 문제를 겪고 있지만 해결책이 효과가 없었습니다. 나는 이것이 권한 문제라고 생각하지만 그것을 고칠 파일 권한에 대한 지식이 없다.
ajbraus

Homebrew를 통해 PG를 설치하고 문제가있는 사람들은 다른 대답을 찾았습니다. pg gem을 제거하고 Homebrew 구성으로 다시 설치하십시오. stackoverflow.com/a/19609228/1072058 의 답변을 참조하십시오 .
zquintana

여기에 비슷한 대답 - stackoverflow.com/questions/13573204/...
VelLes

1
postgres를 시작하십시오.
atw

4
다음 명령을 사용하여 기존 버전을 최신 버전으로 업그레이드하십시오. brew postgresql-upgrade-database

답변:


799

비슷한 문제가 있었다; pid 파일이 postgres의 시작을 차단하고있었습니다. 그것을 해결하기 위해:

rm /usr/local/var/postgres/postmaster.pid

그리고 모든 것이 잘됩니다.


4
이것은 업데이트 / 재시작 시이 문제를 본 후 OSX Mavericks에서 저에게 효과적이었습니다.
eprothro

3
@ jstafford 감사합니다, 나는 이미 해결했습니다! :) 해결책은 homebew를 통해 제거 한 다음 컴퓨터를 즉시 다시 시작하는 것이므로 postgres를 다시 설치할 수 있습니다. 이전 버전은 백그라운드에서 실행되어 postgres를 다시 설치하려고 할 때마다 파일과 충돌이 발생했습니다.
betoharres

199
이것은 Mavericks에서 저에게 효과가 없었습니다 :rm: /usr/local/var/postgres/postmaster.pid: No such file or directory
sscirrus

16
이것은 지우기 후에 postgres를 시작해야했습니다. # pg_ctl -D / usr / local / var / postgres -l /usr/local/var/postgres/server.log start
Ricardo Castañeda

12
이것이 실제로 문제인지 확인하기 위해 서버 로그를 tail /usr/local/var/postgres/server.log
마무리

255

이것은 때때로 postgres 업그레이드에서 문제가 될 수 있습니다.

필자의 경우 9.3에서 9.4로 업그레이드 할 때 발생했습니다.

보다 http://www.postgresql.org/docs/9.4/static/upgrading.html을 하십시오

OS X / 홈 브루 :

달리기 postgres -D /usr/local/var/postgres - 포스트 그레스가 시작되지 않으면 그것은 당신에게 훨씬 더 자세한 출력을 제공 할 것입니다.

내 경우에는 rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8 이전 데이터베이스가 제거되고 postgres db 스키마가 다시 초기화되었습니다.

해당 솔루션에 대한 https://github.com/Homebrew/homebrew/issues/35240 에게 감사합니다 .

로 데이터베이스를 재생성 한 후 rake db:create모든 것이 잘 작동했습니다.


1
이것은 요세미티에 postgres가 설치된 홈 브루로 나를 위해 일했습니다.
cpursley

7
running postgres -D /usr/local/var/postgres에서 데이터 디렉토리가 이전 버전과 호환되지 않는 Postgres 버전으로 초기화되었고 로컬 데이터를 잃고 싶지 않다면 이 스레드를
Nathan Long

위의 명령을 실행 pg_ctl -D /usr/local/var/postgres -l logfile start한 후 다음을 실행했습니다. 그런 다음 서버가 백그라운드에서 시작되었습니다.
Tommyixi

5
brew services start postgresOSX를 사용 하여 백그라운드 대신 postgres를 시작 하십시오 .postgres -D /usr/local/var/postgres
마이크 Andrianov

1
@coffekid 나는 같은 문제를 겪고 여기에 지침을 수정했습니다 : stackoverflow.com/questions/24379373/…
Micah Walter

68

나를 위해 일한 해결책을 찾았습니다.

/dba/75214/psql-could-not-connect-to-server-no-such-file-or-directory

기본적으로 다음 명령을 실행하여 서버를 수동으로 시작하십시오.

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

8
모든 답변 중 이것이 나를 위해 일한 유일한 것입니다. El Capitan 사용
Patrick_870206 2016 년

나는 그 cmd로 시도했지만 나를 위해 일하지 않았다!!
Harshit Trivedi

41

brew로 postgres를 설치 및 제거 할 수없는 경우 postgresql 설치 로그를 보거나 다음을 수행하십시오.

postgres -D /usr/local/var/postgres

이런 종류의 출력이 보이면 :

LOG:  skipping missing configuration file "/usr/local/var/postgres/postgresql.auto.conf"
FATAL:  database files are incompatible with server
DETAIL:  The data directory was initialized by PostgreSQL version 9.4, which is not compatible with this version 9.6.1.

그런 다음 다음을 시도하십시오.

rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8

그런 다음 서버를 시작하십시오.

pg_ctl -D /usr/local/var/postgres -l logfile start

출처


2
이유가 허용 된 답변과 다른 경우 즉, 데이터베이스 파일이 현재 버전과 호환되지 않는 경우 작동합니다. 그것이 내 문제 였기 때문에 나는 찬성했다.
포크 Schuetzenmeister

1
이 명령은 저에게 효과적입니다.
Ccr


34

Yosemite에서 pid 파일이 Postgres의 시작을 차단하고 launchctl데몬이 데이터베이스 데몬을로드하려고 시도하고 실패한 경우 plist 파일을 언로드해야합니다.

$ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

그런 다음 pid 파일을 제거하십시오.

$ rm /usr/local/var/postgres/postmaster.pid

그런 다음 launchctl데몬을 다시로드하십시오.

$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

28

이것을 읽고 Postgres.app를 사용하는 사람이라면 host: localhostdatabase.yml에 필요할 수 있습니다. http://postgresapp.com/documentation#toc_3


이렇게하면 소켓에서 TCP 연결로 연결이 변경되어 부정적인 영향을 줄 수 있습니다. 참조 stackoverflow.com/questions/6770649/...
브렛 저기 Bim

1
흠, 실제로, 만약 당신이 downvote한다면 ... 아마도 왜 말하지 않습니까? meta.stackoverflow.com/questions/252297/… 또는 이유를 말하지만 먼저 로그 아웃하여 익명으로 만드십시오.
David Winiecki

다운 투표는 원래 질문이 Postgres.app가 아니라 Homebrew이기 때문이라고 생각합니다. 따라서 대답은 어딘가에 유용 할 수 있지만 질문에 대답하지는 않습니다.
브라이언 친애하는

링크가 특정 위치로 이동하지 않는 것 같습니다 (과거의 "localhost"를 검색해도 결과가 없습니다). 그러나 이것은 한 시간 동안 검색 한 후에 문제를 해결했습니다.
sixty4bit

25

데이터베이스 업그레이드가 저에게 효과적입니다

brew postgresql-upgrade-database


👍✅⭐️🙏 감사합니다! 이것은 macOS Mojave 10.14.6
20

19
brew services start postgres 

나를 위해 일했다!


17

소켓 파일이 존재하는지 확인하십시오.

$ ls -l /tmp/.s.PGSQL.5432
srwxrwxrwx  1 you  wheel  0 Nov 16 09:22 /tmp/.s.PGSQL.5432

그렇지 않은 경우 postgresql.conf에서 unix_socket_directory 변경을 확인하십시오.

$ grep unix_socket /usr/local/var/postgres/postgresql.conf
#unix_socket_directory = ''     # (change requires restart)
#unix_socket_group = ''         # (change requires restart)
#unix_socket_permissions = 0777     # begin with 0 to use octal notation

1
이것은 내 컴퓨터 응답입니다. $ ls -l /tmp/.s.PGSQL.5432 ls: /tmp/.s.PGSQL.5432: No such file or directory $ grep unix_socket /usr/local/var/postgres/postgresql.conf #unix_socket_directory = '' # (change requires restart) #unix_socket_group = '' # (change requires restart) #unix_socket_permissions = 0777 # begin with 0 to use octal notation
게리 라이

29
마지막으로 해결책을 찾습니다. $ mkdir /var/pgsql_socket/ $ sudo mkdir /var/pgsql_socket/ $ ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/이 솔루션은 조금 까다 롭지 만 작동합니다. 더 나은 해결책
Gary Lai

좋은 직업 @GaryLai. 내가 집에서 만든 postgresql과 동일하게 할 필요가 없다는 것은 매우 이상합니다.
jrwren


14

이 문제는 postmaster.pid 파일을 남겨둔 충돌 된 프로세스로 인한 것일 수도 있습니다. 나는 이것을하고 일한다 :

$ brew services stop postgresql
$ rm /usr/local/var/postgres/postmaster.pid # adjust path accordingly to your install
$ brew services start postgresql

10

문제는 포트 5432에 이미 실행중인 서비스가 있고이 포트를 통해 psql 소켓 연결을 설정할 수 없기 때문입니다.

소켓 파일을 제거했습니다

rm -rf /tmp/.s.PGSQL.5432/

그런 다음 postgres 서비스를 다시 초기화했습니다.

postgres -D /usr/local/var/postgres

이것은 나를 위해 일했습니다.


8

이 문제를 가장 어리석은 방법은

brew reinstall postgresql

이렇게하면 사용자 권한 등이 그대로 유지되고 모든 것이 새로운 것으로 재설정됩니다. 항상 작동합니다!


챔피언처럼 일했다 !!!! 이 모든 것이 필요했습니다.
카시 K

7

postresql 또는 database.yml 구성 설정 변경, $ PATH 변경 또는 심볼릭 링크 작성은 모두 필요하지 않았습니다. 내가해야 할 일은 그저 (또는 ) gem uninstall pg뿐 이었습니다 .bundlegem install pg

문제는 pg gem이 homebrew postgres 이전에 설치 되었기 때문에 MacOS와 함께 제공되는 postgres 버전에서 설정을 선택하는 것이 었습니다. 다시 설치하여 기본 확장을 다시 작성하면 문제가 해결되었습니다.


그냥 고맙다고 말하고 싶었어 방금 macOS에서 PostgresApp을 업그레이드했으며 psql을 사용하여 연결할 수 있었지만 레일을 통해 연결할 수 없었습니다. pg gem을 제거하고 다시 설치하는 것은 단지 티켓이었습니다! :)
craig1410

7

데이터베이스가 업그레이드하지 않고 호환되지 않기 때문에 9.3.4에서 9.5로 업그레이드했을 때 이런 일이 발생했습니다.

다음과 같이 pg_upgrade를 사용했습니다.

postgres 중지

$ brew services stop postgresql

데이터베이스를 업그레이드하십시오.

$ pg_upgrade \
   -d /usr/local/var/postgres \
   -D /usr/local/var/postgres9.5 \
   -b /usr/local/Cellar/postgresql/9.3.4/bin/ \
   -B /usr/local/Cellar/postgresql/9.5.0/bin/ \
   -v

이전 데이터베이스를 아카이브하십시오.

 $ mv /usr/local/var/postgres /usr/local/var/postgres9.3.save
 $ mv /usr/local/var/postgres9.5 /usr/local/var/postgres

postgres를 다시 시작하십시오.

 $ brew services start postgresql

보석 업데이트 (레일 / 액티브 레코드) :

 $ gem uninstall pg
 $ gem uninstall activerecord-postgresql-adapter
 $ bundle install

이 지침은 또한 Collectiveidea.com/blog/archives/2016/01/08/… 에 있으며 9.4.0에서 9.6.3으로 업그레이드 할 때 여전히 도움이되었습니다. .pid 파일에 수동으로 아무것도 할 필요가 없었습니다.
Jan Hettich

7

이것은 실제로 당신이해야 할 일입니다.

대신 /usr/local/var/postgres/postmaster.pid를 봐야합니다

그런 다음 파일의 첫 번째 줄을보십시오. 이것은 잘못된 PID입니다.

운영

ps aux | grep <PID>

예를 들면 다음과 같습니다.

ps aux | grep 12345

그런 다음

kill <PID>

예를 들어

kill 12345

여전히 실행 중이라고 가정

/superuser/553045/fatal-lock-file-postmaster-pid-already-exists

수락 된 답변을 듣지 마십시오. 나쁘고 데이터가 손상됩니다!


고마워, 이것은 나를 위해 일했다. 허용 된 답변에서 postmaster.pid를 제거하는 것만으로는 충분하지 않습니다.
Abe Petrillo

4

PHP 옵션

-h hostname --host = hostname

: 서버가 실행중인 시스템의 호스트 이름을 지정합니다. 값이 슬래시로 시작하면 Unix 도메인 소켓의 디렉토리로 사용됩니다.

$ grep "port\|unix_socket" /etc/postgresql/9.1/main/postgresql.conf
port = 5433                                         # (change requires restart)
unix_socket_directory = '/var/run/postgresql'       # (change requires resta

$ netstat -nalp | grep postgres
unix  2      [ ACC ]     STREAM     LISTENING     106753   4349/postgres       /tmp/.s.PGSQL.5432
unix  2      [ ACC ]     STREAM     LISTENING     10377 1031/postgres       /var/run/postgresql/.s.PGSQL.5433

-host 옵션으로 psql을 실행하십시오.

$ psql -p 5433 -h /var/run/postgresql

소프트 링크를 만들 필요가 없습니다


4

MacOS Sierra에서도이 문제가 발생했으며 위에서 설명한대로 pg_ctl을 실행하면 다음과 같은 오류가 발생했습니다 pg_ctl: no database directory specified and environment variable PGDATA unset. 그래서 우리는 여기서 문제를 해결 한 단계 , 즉

mkdir ~/.postgres

initdb ~/.postgres

pg_ctl -D ~/.postgres start


4

homebrew를 사용하여 postgres를 설치 한 경우 다음을 실행하여이 문제를 해결할 수 있습니다.

brew link postgres


4

psql을 종료하지 않고 시스템을 종료하면 postgres가 일부 파일을 제거하지 않았을 것입니다.

usr / local / var / postgres 위치에서 postmaster.pid 파일을 찾지 못했습니다

그래서 나는 아래를했다 :

브루 서비스 시작 postgresql

위의 명령으로 postgres를 시작할 수 있습니다


3

다른 프로세스가 액세스하는 동안 DB를 복원 / 삭제 / 생성하려고 시도한 후에이 문제가 발생했습니다. MacOSX / Homebrew 수정 사항은 다음과 같습니다.

  1. 다른 모든 액세스하는 프로세스를 닫습니다 rails server, rails console,guard , 등 ...
  2. 에있는 명령을 사용하여로드 / 언로드 brew info postgres
  3. 이전에서 복원 / 삭제 / 생성 실행

3

FWIW 이것이 오늘 나에게 일어 났지만, 그 당시에는 우분투 업데이트를 실행하고 있었고 Postgres를 업데이트했을 가능성이있었습니다. 업데이트가 완료되면 장애없이 연결할 수있었습니다.

완벽을 기하기 위해 Rails 콘솔에서 데이터베이스에서 레코드를 검색하려고했습니다.

development (main):0 > a = MyModel.find 73694
PG::ConnectionBad: 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"?

3

psql이 실행되지 않는 것 같습니다. 연결하기 전에 실행해야합니다. Mac OS 전용 Postgres.app를 사용하여이를 수행 할 수 있습니다. (이 응용 프로그램 http://postgresapp.com 다운로드 및 설치 ) 응용 프로그램을 열고 PostgreSQL 서버를 준비하고 새 연결을 기다리고 있습니다. 앱을 닫으면 서버가 종료됩니다. http://www.postgresql.org/download/macosx/ 에서이 정보를 찾을 수도 있습니다 . 이것이 도움이되기를 바랍니다.


1
이 링크가 질문에 대한 답변을 제공 할 수 있지만 여기에 답변의 필수 부분을 포함시키고 참조 용 링크를 제공하는 것이 좋습니다. 링크 된 페이지가 변경되면 링크 전용 답변이 유효하지 않을 수 있습니다.
Kmeixner 2016 년

이 질문은 구체적으로 Postgres.app 설치가 아닌 가정용 설치에 관한 것입니다. 이 답변은 도움이되지만 질문에 대한 답변은 아닙니다. "MySQL을 대신 사용하십시오"라고 말하는 것과 같습니다.
Brian 친애하는

3

이전 서버가 여전히 실행 중이기 때문에 모든 것을 닫고 응용 프로그램을 다시 실행하십시오.


3

이 명령을 사용하고 작동하지 않거나 파일이없고 Ruby on Rails를 사용하는 사용자

rm /usr/local/var/postgres/postmaster.pid

또는 다른 명령으로 계속 실패하십시오.

Brew로 제거하는이 문제를 해결했습니다. brew로 두 번 제거해야했습니다. 첫 번째 제거시 postgresql의 다른 버전이 남아 있고 두 번째 제거로 프로세스가 완료되기 때문입니다.

Brew와 함께 postgresql 설치

그런 다음 프로젝트의 데이터베이스를 삭제, 작성 및 마이그레이션하십시오.

(postgreSQL 서버를 시작하는 것을 잊지 마십시오)


3

코드에 잘못된 Postgres 사용자 이름을 사용하고 있기 때문에 동일한 문제가 발생했습니다. 나는 postgres에 로그인 psql -d postgres하고 입력\du Postgres의 사용자 이름을 수정하고 역할 이름을 했습니다.

따라서이 문제에 직면하면 올바른 Postgres 사용자 이름, 비밀번호, 호스트 이름 및 데이터베이스를 사용하고 있는지 확인해야합니다 ...

이것이 누군가를 도울 수 있기를 바랍니다.


3

¿ 최근에 pg_hba.conf를 변경 했습니까? 오타가 있는지 확인한 경우 :

"local"은 Unix 도메인 소켓 연결 전용입니다.

모든 로컬 비밀번호

IPv4 로컬 연결 :

모든 127.0.0.1/32 비밀번호를 모두 호스팅

IPv6 로컬 연결 :

모두 호스트 :: 1/128 비밀번호

때로는 간단한 실수로 두통이 생길 수 있습니다. 내 영어가 전혀 좋지 않은 경우이 도움이되기를 바랍니다.


3

postgres 서버가 실행되고 있지 않을 때 발생합니다. MAC에서 Homebrew를 통해 Postgres를 올바르게 설치하는 단계 :

  1. brew install postgres

  2. initdb /Users/<username>/db -E utf8 [이것은 주어진 디렉토리를 데이터베이스 디렉토리로 사용하기 위해 postgres를 초기화합니다. 일반적으로 데이터베이스 저장에 사용자 디렉토리를 사용하지 않는 것이 좋습니다. sudoers 파일을 편집하여 initdb 및 유사한 명령을 추가 한 후 / usr / local / var / postgres에서 initdb를 실행하십시오.]

  3. pg_ctl -D /Users/<username>/db -l logfile start [2 단계에서 성공한 후 3 단계를 실행하라는 프롬프트가 표시됩니다.이 명령은 서버를 수동으로 시작합니다.]


2

이 같은 오류가 발생했습니다. postgres가 전혀 실행되지 않았다는 것이 밝혀졌습니다 (일반적으로 항상 백그라운드에서 실행되지만 오늘이 아닌 이유는 무엇이든).

이 경우 postgres프로젝트 디렉토리의 명령 행을 입력하십시오.


2

엄청난 양의 앞뒤로, 그것은 실제로 pg내가 사용 하고있는 보석 버전으로 떨어졌습니다 . 매버릭에서 pg버전 0.15.1은 포트 5432에 연결되지 않지만 버전 0.17.1은 정상적으로 작동합니다.

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