PostgreSQL 강제 종료후 발생하는 문제 트러블 슈팅

Seong Hyeon Kim·2024년 11월 6일
0

트러블슈팅

목록 보기
6/7

1.사건발생

could not connect to server: Connection refused
    Is the server running on host "localhost" (::1) and accepting
    TCP/IP connections on port 5432?

맥북이 갑자기 꺼지는 바람에 postgresql 역시 강제 종료되었고, pgadmin 으로 다시 접속하려고 시도했으나, 비밀번호가 일치하는데도 이런 오류가 떠서 안되는 이슈가 발생했습니다.




2.트러블슈팅 시작 (티스토리)

세상에 한명은 같은 오류를 겪었겠거니 하고 바로 구글링한결과 아래의 티스토리에서 같은 이슈를 확인하였습니다.

https://junior-datalist.tistory.com/177

원인: pg 서버가 정상적으로 종료되지 않아 발생하는 에러 (postgres server가 닫힌 상태)

해결방법: 터미널에서 아래 경로로 접속하여 postmaster.pid 파일을 찾는다.

$ /Users//Library/Application\ Support/Postgres/var-13

저도 동일하게 시도해봤으나 저는 조금 다르게 나온게, postmaster.pid 가 아예 없는것을 확인하고 혹시 다른 오류인가 하는 생각에 다른 방향으로 접근했습니닷



2-1. 트러블슈팅 (스택오버플로우)

트러블슈팅의 근본 사이트인 스택오버플로우에서도 비슷한 상황을 확인하였습니다.

https://stackoverflow.com/questions/37307346/is-the-server-running-on-host-localhost-1-and-accepting-tcp-ip-connections

질문하신 작성자분도 저처럼 없는 상황이라 더욱 나이스했습니다

postgres -D /usr/local/var/postgres

FATAL: lock file "postmaster.pid" already exists
HINT: Is another postmaster (PID 449) running in data directory "/usr/local/var/postgres"?

가장 많은 따봉을 받은 답변을 참고해봤으나 이 부분 역시 저에게도 해당이 되질 않더라구요



postgres -D /usr/local/var/postgres
dyld[2957]: Library not loaded:.
(무수히 많은 에러메시지)
.
.
.
.

저의 경우는 ICU (International Components for Unicode)라는 파일이 소실되어서 라이브러리의 일부가 작동을 하지 않은 이슈인것 같았고, 이부분을 해결하기 위해 이번엔 ChatGPT 를 참고해봤는데요



3. 트러블슈팅 (chatGPT)

  • icu4c 다시 설치 다음 명령어로 icu4c를 다시 설치해 보세요. Homebrew를 사용하면 최신 버전으로 설치됩니다.

brew reinstall icu4c

당연하게도 소실된 라이브러리를 다시 설치해보는 방향을 추천해줬으나 이것만으로는 해결이 안됬고,

추가적으로 받은 답변내용인

  • PostgreSQL 재설치
    PostgreSQL이 새 라이브러리 버전을 참조할 수 있도록 PostgreSQL을 재설치해 보세요.

brew reinstall postgresql@버전숫자

새 라이브러리를 참조 할 수 있도록 재설치도 해주면 좋다고 해서 실행한결과,,,,

바로 해결이 되었습니다


후기.

brew services restart postgresql

스택오버플로우 답변중에 이런식으로 재시작하는것도 있었고, 이 방법 역시 시도했어도 큰 변화는 없었습니다.

결국 아무리 같은 에러라도 상황에따라 다르다는것, 그리고 트러블슈팅은 역시 고전적인 방법인 구글링부터 시작하는게 정석이라는걸 오랜만에 또 새삼 깨닫게 되었네요

profile
삽질도 100번 하면 요령이 생긴다. 부족한 건 경험으로 채우는 개발자

0개의 댓글