MongoDB가 파일 권한 문제 때문에 시작되지 않았습니다

발행: (2026년 2월 28일 오전 05:52 GMT+9)
4 분 소요
원문: Dev.to

Source: Dev.to

MongoDB가 파일 권한 문제로 시작되지 않은 커버 이미지

Original article published on Web Warrior Toolbox.

와이어드 타이거 터틀 이야기…

프로젝트를 트러블슈팅하던 중, 핫픽스를 배포하기 전에 로컬에서 데이터베이스를 실행하고 싶었습니다. PC를 설정하고 유용한 테스트 데이터로 데이터베이스를 모킹한 뒤, 다시 로컬 인스턴스로 테스트해야 했습니다.

보통 사용하는 명령으로 MongoDB를 시작해 보았습니다:

systemctl start mongod

서비스 상태를 확인했을 때 시작되지 않은 것을 확인했습니다:

systemctl status mongod

상태 출력에 오류가 있었지만, 이유가 명확하지 않았습니다. 여러 챗봇 제안을 참고한 뒤 로그에 답이 있다는 것을 깨달았습니다.

Linux에서는 애플리케이션 로그가 /var/log 아래에 저장됩니다. MongoDB의 경우 관련 파일은 다음과 같습니다:

/var/log/mongodb/mongod.log

로그의 마지막 부분을 살펴보았습니다:

sudo tail -n300 /var/log/mongodb/mongod.log

많은 라인 중 가장 빈번하고 중요한 메시지는 다음이었습니다:

[ERROR]: __posix_open_file, 924: /var/lib/mongodb/WiredTiger.turtle: handle-open: open: Permission denied

오류는 /var/lib/mongodb/WiredTiger.turtle 파일을 가리키고 있었습니다. 챗봇은 이 파일이 mongodb 사용자 소유여야 한다고 제안했습니다. 실제로는 root 소유였으므로, 해당 디렉터리의 소유자를 변경했습니다:

sudo chown -R mongodb:mongodb /var/lib/mongodb

서비스를 다시 시작한 뒤, MongoDB가 정상적으로 시작되었습니다:

systemctl restart mongod
systemctl status mongod

이 이야기를 통해 배운 점

  • 로그를 확인하세요: 로그에는 종종 정확한 오류 메시지가 포함되어 있습니다.
  • 로그를 챗봇이나 팀원에게 제공하세요: 관련 로그 조각을 제공하면 문제 해결 속도가 빨라집니다.
  • 파일 권한이 중요합니다: MongoDB 파일 및 디렉터리가 mongodb 사용자에게 소유되어 있는지 확인하세요.

사이드 스토리

WiredTiger.turtle 파일이 root 소유가 되었을까요? 첫 번째 핫픽스를 실행할 때 다음과 같이 했기 때문입니다:

sudo mongod --config /etc/mongod.conf

sudo를 사용해 mongod를 직접 실행하면 프로세스가 root 권한으로 파일을 생성합니다. 이후 systemctl로 MongoDB를 시작하려고 하면 소유권이 맞지 않아 실패합니다. 소유권을 다시 mongodb로 변경하면 문제가 해결됩니다.

계속 코딩합시다, dev‑san 🤓 頑張って!

0 조회
Back to Blog

관련 글

더 보기 »

과거와의 마지막 춤🕺

소개 안녕하세요 dev.to 커뮤니티! 일주일 전에 저는 저를 소개하고, 웹 개발을 떠나 cryptograph에 집중하기 위해...