Windows 平臺安裝 MongoDB

網站資源

說明

本文主要介紹在Windows下安裝MongoDB,其他環境等我有了再更新下。

什麼是MongoDB ?

  • MongoDB 是由C++語言編寫的,是一個基於分佈式文件存儲的開源數據庫系統。
  • 在高負載的情況下,添加更多的節點,可以保證服務器性能。
  • MongoDB 旨在爲WEB應用提供可擴展的高性能數據存儲解決方案。
  • MongoDB 將數據存儲爲一個文檔,數據結構由鍵值(key=>value)對組成。MongoDB 文檔類似於 JSON 對象。字段值可以包含其他文檔,數組及文檔數組。
{
	name:"sue", // field:value
	age:26, // field:value
	status:1, // field:value
	groups:["new","sports"] // field:value
}

MongoDB特性

  • MongoDB 是一個面向文檔存儲的數據庫,操作起來比較簡單和容易。
  • 你可以在MongoDB記錄中設置任何屬性的索引 (如:FirstName=“Sameer”,Address=“8 Gandhi Road”)來實現更快的排序。
  • 你可以通過本地或者網絡創建數據鏡像,這使得MongoDB有更強的擴展性。
  • 如果負載的增加(需要更多的存儲空間和更強的處理能力) ,它可以分佈在計算機網絡中的其他節點上這就是所謂的分片。
  • Mongo支持豐富的查詢表達式。查詢指令使用JSON形式的標記,可輕易查詢文檔中內嵌的對象及數組。
  • MongoDb 使用update()命令可以實現替換完成的文檔(數據)或者一些指定的數據字段 。
  • Mongodb中的Map/reduce主要是用來對數據進行批量處理和聚合操作。
  • Map和Reduce。Map函數調用emit(key,value)遍歷集合中所有的記錄,將key與value傳給Reduce函數進行處理。
  • Map函數和Reduce函數是使用Javascript編寫的,並可以通過db.runCommand或mapreduce命令來執行MapReduce操作。
  • GridFS是MongoDB中的一個內置功能,可以用於存放大量小文件。
  • MongoDB允許在服務端執行腳本,可以用Javascript編寫某個函數,直接在服務端執行,也可以把函數的定義存儲在服務端,下次直接調用即可。
  • MongoDB支持各種編程語言:RUBY,PYTHON,JAVA,C++,PHP,C#等多種語言。
  • MongoDB安裝簡單。

語言支持

語言支持
MongoDB有官方的驅動如下:

  • C
  • C++
  • C# / .NET
  • Erlang
  • Haskell
  • Java
  • Lisp
  • node.JS
  • Perl
  • PHP
  • Python
  • Ruby
  • Scala

MongoDB 工具

有幾種可用於MongoDB的管理工具。

監控

MongoDB提供了網絡和系統監控工具Munin,它作爲一個插件應用於MongoDB中。

Gangila是MongoDB高性能的系統監視的工具,它作爲一個插件應用於MongoDB中。

基於圖形界面的開源工具 Cacti, 用於查看CPU負載, 網絡帶寬利用率,它也提供了一個應用於監控 MongoDB 的插件。

GUI
  • Fang of Mongo – 網頁式,由Django和jQuery所構成。
  • Futon4Mongo – 一個CouchDB Futon web的mongodb山寨版。
  • Mongo3 – Ruby寫成。
  • MongoHub – 適用於OSX的應用程序。
  • Opricot – 一個基於瀏覽器的MongoDB控制檯, 由PHP撰寫而成。
  • Database Master — Windows的mongodb管理工具
  • RockMongo — 最好的PHP語言的MongoDB管理工具,輕量級, 支持多國語言.
  • Robo 3T (formerly Robomongo) - 基於c++寫的,兼容蘋果、Linux、Windows平臺(推薦使用)

Windows 平臺安裝 MongoDB

MongoDB 提供了可用於64位系統的預編譯二進制包,你可以從MongoDB官網下載安裝,MongoDB 預編譯二進制包下載地址:https://www.mongodb.com/download-center/community

注意:在 MongoDB 2.2 版本後已經不再支持 Windows XP 系統。最新版本也已經沒有了 32 位系統的安裝文件。

在這裏插入圖片描述

  • MongoDB for Windows 64-bit x64 適合於Windows Server 2008 R2, Windows 7 , 及最新版本的 Window 系統。

安裝步驟

如圖所示:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述在這裏插入圖片描述

按照上述步驟可完成安裝。

新版本啓動數據庫

新版本的4.x 的MongoDB在安裝的同時已經創建好了data文件夾。

E:\Dev\MongoDB\Server\4.0\data
E:\Dev\MongoDB\Server\4.0\log

  • 新版本中,自帶有一個配置文件 **mongod.cfg **。以往這個配置文件是要自己新增和填寫的。
# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# Where and how to store data.
storage:
  dbPath: E:\Dev\MongoDB\Server\4.0\data
  journal:
    enabled: true
#  engine:
#  mmapv1:
#  wiredTiger:

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path:  E:\Dev\MongoDB\Server\4.0\log\mongod.log

# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1


#processManagement:

#security:

#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options:

#auditLog:

#snmp:
  • 開始啓動
// 使用命令行,進入bin目錄
cd E:\Dev\MongoDB\Server\4.0\bin
// 啓動數據庫
E:\Dev\MongoDB\Server\4.0\bin>mongod --dbpath E:\Dev\MongoDB\Server\4.0\data
  • 輸出如下日誌表示成功
E:\Dev\MongoDB\Server\4.0\bin>mongod --dbpath E:\Dev\MongoDB\Server\4.0\data
2018-12-17T17:19:21.745+0800 I CONTROL  [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
2018-12-17T17:19:24.595+0800 I CONTROL  [initandlisten] MongoDB starting : pid=19808 port=27017 dbpath=E:\Dev\MongoDB\Server\4.0\data 64-bit host=DESKTOP-DI8IPG6
2018-12-17T17:19:24.595+0800 I CONTROL  [initandlisten] targetMinOS: Windows 7/Windows Server 2008 R2
2018-12-17T17:19:24.607+0800 I CONTROL  [initandlisten] db version v4.0.4
2018-12-17T17:19:24.608+0800 I CONTROL  [initandlisten] git version: f288a3bdf201007f3693c58e140056adf8b04839
2018-12-17T17:19:24.611+0800 I CONTROL  [initandlisten] allocator: tcmalloc
2018-12-17T17:19:24.612+0800 I CONTROL  [initandlisten] modules: none
2018-12-17T17:19:24.614+0800 I CONTROL  [initandlisten] build environment:
2018-12-17T17:19:24.616+0800 I CONTROL  [initandlisten]     distmod: 2008plus-ssl
2018-12-17T17:19:24.620+0800 I CONTROL  [initandlisten]     distarch: x86_64
2018-12-17T17:19:24.624+0800 I CONTROL  [initandlisten]     target_arch: x86_64
2018-12-17T17:19:24.629+0800 I CONTROL  [initandlisten] options: { storage: { dbPath: "E:\Dev\MongoDB\Server\4.0\data" } }
2018-12-17T17:19:24.641+0800 I STORAGE  [initandlisten] Detected data files in E:\Dev\MongoDB\Server\4.0\data created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
2018-12-17T17:19:24.643+0800 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=1248M,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),statistics_log=(wait=0),verbose=(recovery_progress),
2018-12-17T17:19:26.922+0800 I STORAGE  [initandlisten] WiredTiger message [1545038366:922788][19808:140734550326352], txn-recover: Main recovery loop: starting at 1/21760 to 2/256
2018-12-17T17:19:28.355+0800 I STORAGE  [initandlisten] WiredTiger message [1545038368:355277][19808:140734550326352], txn-recover: Recovering log 1 through 2
2018-12-17T17:19:29.100+0800 I STORAGE  [initandlisten] WiredTiger message [1545038369:100270][19808:140734550326352], txn-recover: Recovering log 2 through 2
2018-12-17T17:19:30.033+0800 I STORAGE  [initandlisten] WiredTiger message [1545038370:33277][19808:140734550326352], txn-recover: Set global recovery timestamp: 0
2018-12-17T17:19:30.127+0800 I RECOVERY [initandlisten] WiredTiger recoveryTimestamp. Ts: Timestamp(0, 0)
2018-12-17T17:19:30.200+0800 I CONTROL  [initandlisten]
2018-12-17T17:19:30.201+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2018-12-17T17:19:30.201+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2018-12-17T17:19:30.202+0800 I CONTROL  [initandlisten]
2018-12-17T17:19:30.202+0800 I CONTROL  [initandlisten] ** WARNING: This server is bound to localhost.
2018-12-17T17:19:30.202+0800 I CONTROL  [initandlisten] **          Remote systems will be unable to connect to this server.
2018-12-17T17:19:30.205+0800 I CONTROL  [initandlisten] **          Start the server with --bind_ip <address> to specify which IP
2018-12-17T17:19:30.211+0800 I CONTROL  [initandlisten] **          addresses it should serve responses from, or with --bind_ip_all to
2018-12-17T17:19:30.218+0800 I CONTROL  [initandlisten] **          bind to all interfaces. If this behavior is desired, start the
2018-12-17T17:19:30.218+0800 I CONTROL  [initandlisten] **          server with --bind_ip 127.0.0.1 to disable this warning.
2018-12-17T17:19:30.220+0800 I CONTROL  [initandlisten]
2018-12-17T17:19:38.917+0800 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory 'E:/Dev/MongoDB/Server/4.0/data/diagnostic.data'
2018-12-17T17:19:38.930+0800 I NETWORK  [initandlisten] waiting for connections on port 27017
2018-12-17T17:19:54.840+0800 I NETWORK  [listener] connection accepted from 127.0.0.1:57484 #1 (1 connection now open)
2018-12-17T17:19:54.904+0800 I NETWORK  [conn1] received client metadata from 127.0.0.1:57484 conn1: { driver: { name: "nodejs", version: "3.0.8" }, os: { type: "Windows_NT", name: "win32", architecture: "x64", version: "10.0.17134" }, platform: "Node.js v8.11.2, LE, mongodb-core: 3.0.8" }

3.5版本左右的初始化數據庫

目前自己用的是3.5左右的MongoDB,啓動方式稍稍複雜點。

  • 創建mongo.conf文件
// 進入bin目錄
cd E:\Dev\mongo\bin
// 創建文件  mongo.conf
E:\Dev\mongo\bin>type NUL>mongo.conf
  • mongo.conf內容
dbpath=E:\Dev\mongo\data #數據庫路徑
#logpath=E:\Dev\mongo\log\mongo.log #日誌輸出文件路徑
#logappend=true #錯誤日誌採用追加模式,配置這個選項後mongodb的日誌會追加到現有的日誌文件,而不是從新創建一個新文件
journal=true #啓用日誌文件,默認啓用
quiet=false #這個選項可以過濾掉一些無用的日誌信息,若需要調試使用請設置爲false
port=27017 #端口號 默認爲27017
#bind_ip=127.0.0.1 # 不設置,則外網能訪問,設置則只限本機訪問
storageEngine = wiredTiger
  • 啓動數據庫

mongod.exe --config mongo.conf

E:\Dev\mongo\bin>mongod.exe --config mongo.conf
2018-12-17T17:42:25.918+0800 I CONTROL  [initandlisten] MongoDB starting : pid=16488 port=27017 dbpath=E:\Dev\mongo\data 64-bit host=DESKTOP-DI8IPG6
2018-12-17T17:42:25.918+0800 I CONTROL  [initandlisten] targetMinOS: Windows Vista/Windows Server 2008
2018-12-17T17:42:25.919+0800 I CONTROL  [initandlisten] db version v3.4.5
2018-12-17T17:42:25.921+0800 I CONTROL  [initandlisten] git version: 520b8f3092c48d934f0cd78ab5f40fe594f96863
2018-12-17T17:42:25.922+0800 I CONTROL  [initandlisten] allocator: tcmalloc
2018-12-17T17:42:25.928+0800 I CONTROL  [initandlisten] modules: none
2018-12-17T17:42:25.932+0800 I CONTROL  [initandlisten] build environment:
2018-12-17T17:42:25.933+0800 I CONTROL  [initandlisten]     distarch: x86_64
2018-12-17T17:42:25.933+0800 I CONTROL  [initandlisten]     target_arch: x86_64
2018-12-17T17:42:25.936+0800 I CONTROL  [initandlisten] options: { config: "mongo.conf", net: { port: 27017 }, storage: { dbPath: "E:\Dev\mongo\data", engine: "wiredTiger", journal: { enabled: true } }, systemLog: { quiet: false } }
2018-12-17T17:42:25.947+0800 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=1248M,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
2018-12-17T17:42:28.521+0800 I CONTROL  [initandlisten]
2018-12-17T17:42:28.522+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2018-12-17T17:42:28.524+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2018-12-17T17:42:28.525+0800 I CONTROL  [initandlisten]

如上述新版本中輸出日誌時,則啓動成功。注意路徑設置,否則會啓動失敗。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章