기본 콘텐츠로 건너뛰기

Windows에서 MongoDB 사용하기 요약



NoSQL에 대한 이해
MongoDB에 대한 이해
MongoDB 메뉴얼
  • MongoDB 다운받기 - Community GUI를 설치하는 대신에 zip 파일선택하여 Shell Window에서 운영. ( mongdb.com )
  • MongoDB 서버 사용하기 - Command Interpreter
    • Demon으로 실행하기 : 이 방법( --fork 옵션 )은 윈도우에서 실행되지 않고, 대신에 --install 옵션을 사용하여 윈도우 서비스에 등록하여 백그라운드로 사용한다.
      1. 관리자 모드로 명령 프롬프트를 실행한다.
      2. demon을 실행시킨다. ( --install 옵션 추가 )  
        • mongod --dbpath D:\Working\MongoDB\Server_JServer\mongodb_ver4.2.1\data --port 13100 --bind_ip_all --auth --logpath  D:\Working\MongoDB\Server_JServer\mongodb_ver4.2.1\log\mongod.log --install
      3. 명령 라인에 다음 명령을 입력한다.
        • net start MongoDB
      4. 윈도우 서비스 창을 열어서 아래 내용을 확인한다.
    • 배치 파일로 자동 실행하기
      • Demon으로 실행하는 방법의 2번과 3번을 한번에 처리하기 위해 생성한 mdbexe.bat을 사용한다. 
      • 방법
        • mongodb demon을 실행하기 위한 mongod.cfg configuration 파일을 만든다.
        • 배치 파일에 mongod 커멘드와 옵션을 다음과 같이 기술한다.
          • mongod --config filename --install
        • 배치 파일에 MongDB 서비스를 윈도우 서비스에 등록한다.
          • net start MongoDB
        • 만들어진 배치 파일을 관리자모드로 실행시킨다.
          • C#에서 구현할 때 관리자 모드로 실행하는 방법 조사할 것. ( TODO )
    • 종료하기
      • mongo.exe shell program을 실행하여 다음 과정으로 종료한다.
        1. [use admin] 명령으로 DB를 admin으로 변경 )
        2. [db.shutdonwServer()] 메쏘드를 입력하여 실행
        3. 서버 종료 메시지 확인
      • 윈도우 서비스 명령으로 종료하기
        • 관리자 권한으로 명령 프롬프트를 실행한다.
        • 명령 픔롬프트 창에서 [mongod --remove]를 입력한다.
    • 참고: 윈도우즈 서비스 운영
      • 서비스 시작: net start 서비스명
      • 서비스 종료: net stop 서비스명
      • 서비스 삭제: sc delete 서비스명
  • MongoDB 서버 옵션 설정하기
    • 서버 실행하기
      • mongod --dbpath D:\Working\MongoDB\Server_JServer\mongodb_ver4.2.1\data --port 13100 --bind_ip_all --auth --logpath  D:\Working\MongoDB\Server_JServer\mongodb_ver4.2.1\log\mongod.log
        • option 종류 확인하기: >mongod --help
          1. --dbpath: DB Data 저장 폴더 지정
          2. --port: port 지정
          3. --bind_ip_all: IP "0.0.0.0"을 의미하여 모든 IP를 허용하기 위해 지정
          4. --auth: 보안을 위해 사용자 / 패스워드 입력을 유도. 해당 옵션을 사용하는 경우 client에서 사용자 정보를 입력해야 admin 권한의 작업이 가능하다.
            1. Authorization Enable.
            2. show dbs 커멘드는 Local, Remote 모두 가능.
            3. db.shutdownServer() 실행은 Local에서 가능, Remote에서 불가.
          5. --logpath: 기본적으로 로그는 standard output( command line )에 표시되지만, 이 옵션을 설정하면 지정된 파일에 저장된다. 같은 파일이 있다면 기존 파일을 백업된다. 
        • Authorization 옵션 설정시 서버에서 로그 예제
          1. Disable 설정
          2. Enable 설정
        • Port no.는 기본적으로 27017로 설정되어 있으나 보편적으로 사용하는 값이므로 사고의 위험이 있어 Jaguar에서 사용하는 값에 근접한 13100으로 설정한다.
    • Configuration File 이용하기
      • mongod option설정 대신에 config file을 로딩하면 hold 상태가 되어 재 확인 필요함. 
      • → 파일에 필요한 항목을 추가하여 MongoDB Demon 실생시 --config 옵션으로 사용할 수 있도록 함.
  • MongoDB 클라이언트 사용하기
    • 서버와 같은 방법으로 다운받은 zip 파일을 압축해제하고, 제어판>시스템>고급시스템설정보기 윈도우에서 환경변수의 path를 추가한다.
      •  
    • 사용자와 패스워드, 역할 등록하기
      • 방법: MongoDB Demon 실행 명령 입력할 때 보안 옵션을 생략하면 사용자 권한과 무관하게 등록할 수 있다.
    • 클라이언트 실행하기  
      • Local Server: mongo --port 13100 -u username
      • Remote Server: mongo --port 13100 -u username --host 192.168.0.40
    • MongoDB Compass Community 사용하기
      • Community msi 파일을 다운받아 설치한다. 
      • 임의로 생성한 DB test1과 test2를 볼 수 있고, test2의 collection test2와 test_collect1을 볼 수 있다.
      • Collection 선택 시 우측에 List 혹은 Table Type으로 Document를 확인할 수 있다.
        • _id는 Collection 생성시 자동으로 부여되는 고유한 값이다.  
        • Document에서 key가 4개이며 field가 없는 것은 abc / cde / abf / zzz Field가 실시간으로 생성이 가능하다는 것을 나타내며 이것은 RDMS와 가장 큰 차이점으로 볼 수 있다.
  • DB Manipulation Guide
  • C# 연동 드라이버, Nuget 이용하여 설치 ( ver2.9.3 )




댓글

이 블로그의 인기 게시물

[QT] 5.15.2 버전 다운로드와 설치하기

1. 버전 5.15.2를 설치하기 위해 QT 다운로드 사이트 에 접속하였으나 실행파일이 존재하지 않는다. 가장 최신의 실행파일은 ver5.14.2 이므로 일단 이것을 다운받아서 설치한다. ( 참고 사이트 - https://sloth-code.tistory.com/6#comment16833678 ) 다운 사이트  - https://bio.nic.funet.fi/pub/mirrors/download.qt-project.org/archive/qt/5.14/5.14.2/  ------------- 버전이 맞지 않으니 재 설치한다. 2.  5.15.2 버전에는 실행파일 exe가 없고 zip과 tar.gz 파일만 존재한다. ( https://bio.nic.funet.fi/pub/mirrors/download.qt-project.org/archive/qt/5.15/5.15.2/ ) OFFLINE_README.txt를 읽어보면 5.15 버전부터는 오픈 소스 오프라인 설치를 이용할 수 없다고 한다. 오프라인 설치를 원할 경우 다음 사이트 참조하라고 한다.  ( 원본:  The Qt Company offering changes, open source offline installers are not available any more since Qt 5.15. Read more about offering changes in the https://www.qt.io/blog/qt-offering-changes-2020 blog. If you need offline installers, please consider our new Qt for Small Business offering: https://www.qt.io/blog/available-now-qt-for-small-businesses ) - https://www.qt.io/blog/available-now-qt-for-small-businesses ...

[ ChatGPT ] 임의의 프로세스에 접근하여 임의의 변수값을 바꾸기 위한 방법

 질문 사항 1번 프로세스와 2번 프로세스가 있어. 1번이 운영중인데, 2번 프로세스에서 1번 프로세스의 임의의 메모리에 접근하여 그 메모리의 값을 바꾸고 싶어. 어떤 절차를 이용해야 하지? 답변 내용 1번 프로세스의 메모리에 2번 프로세스에서 접근하여 값을 변경하는 것은 매우 민감한 작업이며, 운영 체제에서는 일반적으로 이러한 작업을 보안과 안정성 때문에 제한합니다. 그러나 특수한 경우, 특히 시스템 프로그래밍이나 디버깅 목적으로는 특정 API를 사용하여 이러한 작업을 수행할 수 있습니다. 아래는 이러한 작업을 수행하기 위한 일반적인 절차를 설명합니다. 1. 프로세스 권한 확인 및 확보 2번 프로세스가 1번 프로세스의 메모리에 접근하려면 충분한 권한이 있어야 합니다. 일반적으로 이는 관리자 권한이나 루트 권한이 필요합니다. Windows에서는 SeDebugPrivilege 를 활성화해야 할 수 있으며, Linux에서는 루트 권한이 필요할 수 있습니다. 2. 1번 프로세스의 핸들 획득 2번 프로세스가 1번 프로세스의 메모리에 접근하려면 먼저 1번 프로세스의 핸들을 얻어야 합니다. Windows : OpenProcess 함수를 사용하여 1번 프로세스의 핸들을 얻습니다. 이 함수는 1번 프로세스의 프로세스 ID를 기반으로 접근합니다.