1.mongodb下載地址https://www.mongodb.com/download-center#community
2.安裝
注意:選擇Custom,選擇complete安裝後沒有bin文件(不會搞)。
3.創建環境變量,如下圖所
4.不用auth的形式安裝MongoDB(或者使用4-1)
MongoDB安裝完成後,默認是不需要輸入用戶名密碼即可登錄的,以管理員的身份打開cmd,執行sc create MongoDB binpath=“D:\MongoDB\bin\mongod.exe --dbpath D:\MongoDB\data --logpath D:\MongoDB\log\log.log --logappend --service”,即可安裝MongoDB服務,安裝完成後可以在windows服務中可以看到MongoDB,在屬性中可以設置開機自動啓動,在命令行執行mongo即可進行CRUD操作
4-1. 將MongoDB服務器作爲Windows服務運行
像上面那樣啓動mongodb,發現沒辦法輸入命令行了,這是可以採用打開多個窗口來連接,但這樣就太麻煩了,解決辦法就是將MongoDB服務器作爲Windows服務運行。
輸入以下命令:
F:\mongodb\bin>mongod --dbpath "f:\data\db" --logpath "f:\data\log\mongodb.log" --serviceName "mongodb" --serviceDisplayName "mongodb" --install
看到了如下輸出:
2016-10-20T23:32:46.339+0800 I CONTROL log file "f:\data\log\mongodb.log" exists; moved to "f:\data\log\mongodb.log.2016-10-20T15-32-46".
說明mongodb服務安裝成功。啓動mongodb服務:(這個地方要注意,以管理員的身份運行cmd)
F:\mongodb\bin>net start mongodb
MongoDB 服務已經啓動成功。
停止:
net stop mongodb
由於我們並沒有指定mongodb服務的端口號,所以它啓動在默認的27017窗口。
打開瀏覽器,範圍地址http://127.0.0.1:27017/,可看到如下信息
It looks like you are trying to access MongoDB over HTTP on the native driver port.
5.mongodb中的權限
複製代碼
- 數據庫用戶角色:read、readWrite;
- 數據庫管理角色:dbAdmin、dbOwner、userAdmin;
- 集羣管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
- 備份恢復角色:backup、restore;
- 所有數據庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
- 超級用戶角色:root
// 這裏還有幾個角色間接或直接提供了系統超級用戶的訪問(dbOwner 、userAdmin、userAdminAnyDatabase) - 內部角色:__system
read:允許用戶讀取指定數據庫
readWrite:允許用戶讀寫指定數據庫
dbAdmin:允許用戶在指定數據庫中執行管理函數,如索引創建、刪除,查看統計或訪問system.profile
userAdmin:允許用戶向system.users集合寫入,可以找指定數據庫裏創建、刪除和管理用戶
clusterAdmin:只在admin數據庫中可用,賦予用戶所有分片和複製集相關函數的管理權限。
readAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀權限
readWriteAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀寫權限
userAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的userAdmin權限
dbAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的dbAdmin權限。
root:只在admin數據庫中可用。超級賬號,超級權限
6.MongoDB是沒有默認管理員賬號的,所以要先添加管理員賬號,添加一個 userAdminAnyDatabase 用戶,這是一個能夠管理所有用戶的的用戶(我用的用戶名是root,db是admin)
C:\Windows\system32>mongo
MongoDB shell version v3.6.0
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.0
> use admin
switched to db admin
> db.createUser({user:"admin",pwd:"123",roles:[{"role":"userAdminAnyDatabase","db":"admin"}]})
Successfully added user: {
"user" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
> exit
bye
C:\Windows\system32>
7.用admin用戶登錄mongodb,創建數據庫incentive和它對應的用戶zjl,所有用戶只能在用戶所在的數據庫登錄,管理員可以管理所有的數據庫,但是不能直接管理其它數據庫,要先在admin數據庫中認證纔可以.
C:\Windows\system32>mongo -u admin -p 123 localhost:27017/admin
MongoDB shell version v3.6.0
connecting to: mongodb://localhost:27017/admin
MongoDB server version: 3.6.0
> use incentive
switched to db incentive
> db.createUser({user:"zjl",pwd:"123",roles:[{"role":"readWrite","db":"incentive"}]})
Successfully added user: {
"user" : "zjl",
"roles" : [
{
"role" : "readWrite",
"db" : "incentive"
}
]
}
> exit
bye
8.用zjl登錄incentive庫,插入一條數據並查詢·
C:\Windows\system32>mongo -u zjl -p 123 localhost:27017/incentive
MongoDB shell version v3.6.0
connecting to: mongodb://localhost:27017/incentive
MongoDB server version: 3.6.0
> db.myCol.insert({title: 'MongoDB 教程'})
WriteResult({ "nInserted" : 1 })
> db.myCol.find()
{ "_id" : ObjectId("5a32ac7838335872bbc1fd0b"), "title" : "MongoDB 教程" }
>
9.以超級管理員的身份打開cmd,(如果已經執行了步驟4,可以先在命令行執行net stop MongoDB停止服務,然後執行sc delete MongoDB刪除服務,進入步驟4所示服務管理窗口,F5刷新確認MongoDB服務已被刪除;如果沒執行步驟4可以不做這一步),以auth的方式註冊服務sc create MongoDB binpath=“D:\MongoDB\bin\mongod.exe --dbpath D:\MongoDB\data --logpath D:\MongoDB\log\log.log --logappend --auth --service”
啓動服務net start MongoDB
以上轉自:cnblogs.com/huanongying/p/8040753.html,加了個人少許見解。
具體的操作:見mongodb