Computer >> 컴퓨터 >  >> 프로그래밍 >> MongoDB

명령어 한 줄로 MongoDB 서버를 종료하는 방법

MongoDB 서버를 여러 단계를 거치지 않고 단일 명령어만으로 깔끔하게 종료하고 싶다면, mongo 셸의 --eval 옵션과 shutdownServer() 메서드를 조합하면 됩니다. 이 방법은 관리자(admin) 데이터베이스에 접속해 종료 명령을 직접 실행하는 방식으로, 가장 빠르고 간편한 MongoDB 종료 방법으로 널리 사용됩니다.

MongoDB 종료 명령어

아래 명령어 하나만 입력하면 MongoDB 서버가 즉시 종료됩니다.

mongo --eval "db.getSiblingDB('admin').shutdownServer()"

이 명령어의 동작 원리는 다음과 같습니다.

  • mongo: MongoDB 셸을 실행합니다.
  • --eval: 셸에 접속한 뒤 지정한 JavaScript 코드를 바로 평가(실행)합니다.
  • db.getSiblingDB('admin'): 현재 접속 상태에서 admin 데이터베이스로 전환합니다.
  • shutdownServer(): 해당 데이터베이스의 권한으로 MongoDB 서버를 안전하게 종료합니다.

실행 예시

실제로 위 명령어를 적용해 보겠습니다. 먼저 실행 중인 셸이나 프로세스가 있다면 Ctrl + C 키로 중단한 뒤, 명령 프롬프트에서 아래와 같이 입력합니다.

C:\Program Files\MongoDB\Server\4.0\bin>mongo --eval "db.getSiblingDB('admin').shutdownServer()"

실행 결과

명령어가 정상적으로 처리되면 MongoDB 서버가 종료되며, 셸은 더 이상 서버에 연결할 수 없게 됩니다. 출력 로그에서 'server should be down...' 메시지와 함께 재접속 시도가 실패하는 것을 확인할 수 있는데, 이는 서버가 실제로 종료되었다는 의미입니다.

MongoDB shell version v4.0.5
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("c0337c02-7ee2-45d9-9349-b22d6b1ffe85") }
MongoDB server version: 4.0.5
server should be down...
2019-03-14T21:56:10.327+0530 I NETWORK [js] trying reconnect to 127.0.0.1:27017 failed
2019-03-14T21:56:11.331+0530 I NETWORK [js] reconnect 127.0.0.1:27017 failed failed
2019-03-14T21:56:11.333+0530 I QUERY [js] Failed to end session { id: UUID("c0337c02-7ee2-45d9-9349-b22d6b1ffe85") } due to SocketException: socket exception [CONNECT_ERROR] server [couldn't connect to server 127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 127.0.0.1:27017 :: caused by :: No connection could be made because the target machine actively refused it.]

로그 마지막 부분의 연결 오류(SocketException)는 오류가 아니라, 종료된 서버에 재연결하려다 실패했다는 정상적인 결과입니다.

MongoDB 서버 다시 시작하기

종료된 MongoDB를 다시 구동하려면 mongod 명령어를 실행하면 됩니다.

C:\Program Files\MongoDB\Server\4.0\bin>mongod

서버가 정상적으로 시작되면 콘솔에 대기 상태 로그가 출력됩니다.

정상 구동 확인하기

서버가 제대로 올라왔는지 확인하려면 새 명령 프롬프트를 열고 mongo 명령어로 접속해 보세요.

C:\Program Files\MongoDB\Server\4.0\bin>mongo

셸 프롬프트(>)가 나타나면 MongoDB 서버가 정상적으로 실행 중인 것입니다.

마무리

정리하면, MongoDB를 한 번에 종료하려면 mongo --eval "db.getSiblingDB('admin').shutdownServer()" 명령어를 사용하면 되고, 다시 시작할 때는 mongod, 접속 확인은 mongo 명령어를 활용하면 됩니다. 이 세 가지 명령어만 기억해 두면 MongoDB 서버를 손쉽게 관리할 수 있습니다.