網站資源
- mongodb官網
- mongodb-window-install菜鳥教程
- mongodb-linux-install菜鳥教程
- mongodb-osx-install菜鳥教程
- Robomongo界面管理工具
- Robomongo的安裝使用說明
- window版本的MongoDB下載,提取碼:3nr1
說明
本文主要介紹在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
-
百度雲盤直接下載:window版本的MongoDB下載,提取碼:3nr1
注意:在 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]
如上述新版本中輸出日誌時,則啓動成功。注意路徑設置,否則會啓動失敗。