기본 콘텐츠로 건너뛰기

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 ...

C# dll 파일들을 지정 폴더에서 사용하기

C#으로 여러 프로세스를 생성할 때, 각각의 프로젝트에서 사용하는 dll을 공동으로 사용하게 된다. 이때 dll은 실행 파일과 같은 폴더내에 존재해야 실행할 수 있다. 같은 dll을 사용하고 관리하는 관점에서 복사하는 일은 효율성이 떨어지며 항상 버전에 신경을 써야 하는 불편함이 있다. 이와 같은 비효율성을 제거하고자 실행파일과 다른 폴더에 있는 dll에 접근하는 방법으로 다음과 같은 방법을 사용하고자 한다. 코드를 수정하지 않고 지정할 수 있는 방법이 가장 편리하고 단순하겠지만 이와 같은 방법은 서브 폴더를 이용하는 방법밖에는 없다. dll이 필요할 때 발생되는 이벤트 핸들러를 추가하고 이를 등록하여 지정된 폴더를 사용할 수 있도록 코드를 추가하여 해결한다. 참고 사이트:  http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=17&MAEULNo=8&no=169705&ref=169702 * dll 필요할 때 발생되는 이벤트 핸들러 추가 static   System.Reflection.Assembly RsveAssem( object   sender, ResolveEventArgs args) {      System.Reflection.Assembly thisAss = System.Reflection.Assembly.GetExecutingAssembly();      var name = args.Name.Substring(0, args.Name.IndexOf( ',' )) +  ".dll" ;             if ( name ==  "abc.dll"   )      {    ...

[MongoDB] C# 으로 작성한 응용 프로그램에서 몽고DB 접근할 때 발생하는 에러

1. System.IO.FileNotFoundException - 해당 기능을 수행할 때 작업 PC에서 발생하지 않는 메시지가 사용자 PC에서 발생하여 해결하기 위해 정리한다. - .Net Framework 4.6.1 에러 메시지 +-----------------------------------------------------------------------------------------------+ System.IO.FileNotFoundException: 파일이나 어셈블리 'System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 또는 여기에 종속되어 있는 파일이나 어셈블리 중 하나를 로드할 수 없습니다. 지정된 파일을 찾을 수 없습니다. 파일 이름: 'System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'    위치: MongoDB.Driver.Core.Connections.ClientDocumentHelper.CreateOSDocument()    위치: System.Lazy`1.CreateValue()    위치: System.Lazy`1.LazyInitValue()    위치: MongoDB.Driver.Core.Connections.ClientDocumentHelper.CreateClientDocument(String applicationName)    위치: MongoDB.Driver.Core.Connections.ConnectionInitializer..ctor(String applicationName, IReadOnl...