MongoDB를 안전하게 종료하려면 db.shutdownServer() 메서드를 사용해야 합니다. 특히 인증(authentication)이 활성화된 환경에서는 반드시 관리자 권한을 가진 사용자로 접속한 상태에서 종료 명령을 실행해야 하며, 일반 사용자 권한으로는 서버를 종료할 수 없습니다.
1단계: admin 데이터베이스로 전환
shutdownServer() 명령은 admin 데이터베이스에서만 실행할 수 있습니다. 따라서 먼저 아래와 같이 admin 데이터베이스로 전환합니다.
use admin;
정상적으로 전환되면 다음과 같은 메시지가 출력됩니다.
> use admin; switched to db admin
2단계: 서버 종료 명령 실행
admin 데이터베이스로 전환한 후, 아래 쿼리를 실행하여 MongoDB 서버를 종료합니다.
> db.shutdownServer();
명령이 실행되면 서버가 종료되며, 다음과 같은 출력을 확인할 수 있습니다.
server should be down... 2020-01-07T22:40:31.295+0530 I NETWORK [js] trying reconnect to 127.0.0.1:27017 failed 2020-01-07T22:40:32.326+0530 I NETWORK [js] reconnect 127.0.0.1:27017 failed failed
추가 참고 사항
- 권한 요구 사항: 인증이 활성화된 경우
root또는userAdminAnyDatabase같은 종료 권한(shutdown privilege)을 가진 역할의 사용자여야 합니다. - 대체 명령:
db.adminCommand({ shutdown: 1 })을 사용해도 동일하게 서버를 종료할 수 있습니다. - 연결 끊김은 정상: 종료 명령 실행 후 mongo 셸은 서버와의 연결을 잃게 되며, 위 예시처럼 재연결 실패 메시지가 표시될 수 있습니다. 이는 정상적인 동작이니 걱정하지 않아도 됩니다.