내 Mac을 재시동하면 무서운 Postgres 오류가 발생했습니다.
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"?
이 문제가 발생하는 이유는 관련이없는 문제로 인해 맥북이 완전히 멈 췄기 때문에 전원 버튼을 사용하여 하드 재부팅해야했기 때문입니다. 재부팅 후이 오류로 인해 Postgres를 시작할 수 없습니다.
답변
경고 : 실제로 postgres
실행중인 프로세스 가 없는지 확인하지 않고 postmaster.pid를 삭제 하면 데이터베이스가 영구적으로 손상 될 수 있습니다 . (포스트 마스터가 종료 한 경우 PostgreSQL에서 자동으로 삭제해야합니다.)
솔루션 :이 문제는 해결되었습니다.이 파일을 삭제하면 모든 것이 제대로 작동했습니다!
/usr/local/var/postgres/postmaster.pid
–
그리고 이것이 왜 이것이 삭제되어야하는지 알아 낸 방법입니다.
-
다음 명령을 사용하여 실행중인 PG 프로세스가 있는지 확인했습니다. 나를 위해 아무도 PG 서버를 시작할 수 없었습니다.
ps auxw | grep post
-
위의 오류 메시지에있는 .s.PGSQL.5432 파일을 검색했습니다. 나는 다음 명령을 사용했다 :
sudo find / -name .s.PGSQL.5432 -ls
이것은 전체 컴퓨터를 검색 한 후 아무 것도 보여주지 않아서 파일이 존재하지 않았지만
psql
“원하는”또는 “생각했다”는 것이 분명 합니다. -
서버 로그를보고 다음 오류를 보았습니다.
cat /usr/local/var/postgres/server.log
서버 로그 끝에 다음과 같은 오류가 표시됩니다.
FATAL: pre-existing shared memory block (key 5432001, ID 65538) is still in use HINT: If you're sure there are no old server processes still running, remove the shared memory block or just delete the file "postmaster.pid".
-
오류 메시지의 조언에 따라 server.log와 동일한 디렉토리에서 postmaster.pid 파일을 삭제했습니다. 이 문제를 해결하고 다시 시작할 수있었습니다.
따라서 내 맥북이 멈추고 하드 재부팅되면 Postgres는 재부팅 후에도 프로세스가 여전히 실행되고 있다고 생각합니다. 이 파일을 삭제하면 해결되었습니다. 이것이 다른 사람들을 돕기를 바랍니다! 많은 사람들이 비슷한 문제를 가지고 있지만 대부분의 대답은 파일 권한과 관련이 있지만 내 경우에는 상황이 다릅니다.
답변
위의 어느 것도 나를 위해 일하지 않았습니다. Postgres를 다음과 같이 다시 설치해야했습니다.
- brew로 postgresql 제거 :
brew uninstall postgresql
brew doctor
(여기에 무엇이든지 고치십시오)brew cleanup
-
모든 Postgres 폴더를 제거하십시오.
rm -r /usr/local/var/postgres
rm -r /Users/<username>/Library/Application\ Support/Postgres
-
brew로 postgresql을 다시 설치하십시오.
brew install postgresql
- 서버 시작 :
brew services start postgresql
- 이제 데이터베이스를 만들어야합니다 … (
createdb
)
답변
macOS를 사용 중이고 homebrew를 통해 postgres를 설치 한 경우
brew services restart postgresql
Ubuntu를 사용하는 경우 다음 명령 중 하나를 사용하여 다시 시작할 수 있습니다.
sudo service postgresql restart
sudo /etc/init.d/postgresql restart
답변
아마도 이것은 관련이 없지만 ;를 postgres
사용하여 주 버전으로 업그레이드 할 때 비슷한 오류가 나타납니다 brew
. 를 사용하여 brew info postgresql
도움이되는 것을 발견했습니다.
To migrate existing data from a previous major version of PostgreSQL run:
brew postgresql-upgrade-database
답변
여기 내 방법이 있습니다.
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
rm /usr/local/var/postgres/postmaster.pid
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
답변
당신 postmaster.pid
이 사라지고 다시 시작할 수 없거나 아무것도 없다면, 이렇게하십시오 :
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
처음에 여기 에 설명 된대로
답변
Hello world 🙂
나에게 가장 좋지만 이상한 방법은 다음 일을하는 것이 었습니다.
1) postgres93.app 다운로드 또는 다른 버전을 . 이 응용 프로그램을 / Applications / 폴더에 추가하십시오.
2) 파일에 행 (명령 ) 추가.bash_profile
(내 홈 디렉토리에 있음)에 .
내보내기 경로 = / Applications / Postgres93.app / Contents / MacOS / bin / : $ PATH
psql
from
의 경로 입니다 Postgres93.app
. 콘솔이 시작될 때마다 행 (명령)이 실행됩니다.
3) 폴더 Postgres93.app
에서 시작하십시오 /Applications/
. 로컬 서버를 시작합니다 (포트는 “5432”이고 호스트는 “localhost”입니다).
4) 이 모든 조작 후에 나는 $ createuser -SRDP user_name
다른 명령 을 실행 하고 그것이 작동하는 것을보고 기뻤습니다 ! Postgres93.app
시스템이 시작될 때마다 실행되도록 할 수 있습니다.
5) 또한 데이터베이스를 그래픽으로보고 싶다면 설치해야합니다.PG Commander.app
. postgres DB를 예쁜 데이터 테이블로 보는 좋은 방법입니다.
물론 로컬 서버에만 도움이됩니다. 이 지침이이 문제에 직면 한 다른 사람들에게 도움이된다면 기쁠 것입니다.
