MongoDB 서비스 시작 실패 문제 해결기

Frog Lemon·2025년 10월 10일
0

트러블 슈팅

목록 보기
4/4
post-thumbnail

최근 모잇지 서비스 운영중 우분투 서버에서 MongoDB 서비스를 재시작하려 했으나, 아래와 같이 실패하는 상황을 겪었다.

$ sudo systemctl status mongod
× mongod.service - MongoDB Database Server
     Loaded: loaded (/usr/lib/systemd/system/mongod.service; disabled; preset: enabled)
     Active: failed (Result: exit-code) since Fri 2025-09-19 04:28:34 UTC; 16s ago
   ...
Sep 19 04:28:34 ip-10-0-0-68 mongod[1252]: {"msg":"Failed to unlink socket file","attr":{"path":"/tmp/mongodb-27017.sock","error":"Operation not permitted"}}

로그를 확인해보니 MongoDB가 /tmp/mongodb-27017.sock 파일을 삭제하지 못해 시작이 실패했다. 이는 주로 파일 권한 문제 또는 이전에 종료되지 않은 MongoDB 프로세스 때문에 발생하는 문제였다.


문제 원인 분석

  1. mongod.service 상태 확인:
sudo systemctl status mongod

결과에서 Failed with result 'exit-code'와 함께 Failed to unlink socket file 에러가 발생했다.

  1. 로그 확인:
sudo tail -50 /var/log/mongodb/mongod.log
  • Failed to unlink socket file
  • Fatal assertion

위 로그를 통해 MongoDB 소켓 파일 삭제 실패가 직접적인 원인임을 확인했다.


문제 해결 과정

1. 소켓 파일 확인

ls -l /tmp/mongodb-27017.sock

파일이 존재하고 소유권 또는 권한 문제로 MongoDB가 접근하지 못함을 확인했다.

2. 소켓 파일 삭제

sudo rm /tmp/mongodb-27017.sock

삭제 후 MongoDB가 새 소켓 파일을 생성할 수 있게 되었다.

3. MongoDB 재시작

sudo systemctl start mongod
sudo systemctl status mongod
  • 정상적으로 서비스가 시작됨을 확인했다.
  • 추가적으로 /tmp 폴더 권한이 올바른지 확인하였다.
ls -ld /tmp
# 권한: drwxrwxrwt

결론

이번 문제는 MongoDB가 소켓 파일을 삭제하지 못해 발생한 서비스 시작 실패였다.

핵심 해결 방법은 다음과 같다.

  1. /tmp/mongodb-27017.sock 파일 삭제
  2. MongoDB 서비스 재시작
  3. /tmp 권한 확인 (필요 시 chmod 1777 /tmp)

이 과정을 통해 MongoDB를 정상적으로 기동시킬 수 있었다.


이번 사례를 통해, MongoDB 서비스 문제는 권한 및 소켓 파일 문제에서 시작되는 경우가 많음을 알 수 있었다.

운영 환경에서 MongoDB가 갑자기 시작되지 않을 때, 먼저 /tmp와 소켓 파일을 확인하는 습관이 필요하다고 느꼈다.

profile
도전하며 굴러가는 돌멩이, 인생 마라톤 중 😎

0개의 댓글