1.mongodb下載地址https://www.mongodb.com/download-center#community 2.安裝 3.在D:\MongoDB目錄下創建db和log兩個文件夾,並創建環境變數,如下圖所 4.以超級管理員的身份打開cmd,以auth的方式註冊服務sc create ...
1.mongodb下載地址https://www.mongodb.com/download-center#community
2.安裝
3.在D:\MongoDB目錄下創建db和log兩個文件夾,並創建環境變數,如下圖所
4.這個步驟不必執行,只是為了說明不用auth的形式安裝MongoDB的情況
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操作
5.以超級管理員的身份打開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
6.mongodb中的許可權
1. 資料庫用戶角色:read、readWrite; 2. 資料庫管理角色:dbAdmin、dbOwner、userAdmin; 3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager; 4. 備份恢復角色:backup、restore; 5. 所有資料庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase 6. 超級用戶角色:root // 這裡還有幾個角色間接或直接提供了系統超級用戶的訪問(dbOwner 、userAdmin、userAdminAnyDatabase) 7. 內部角色:__system
read:允許用戶讀取指定資料庫
readWrite:允許用戶讀寫指定資料庫
dbAdmin:允許用戶在指定資料庫中執行管理函數,如索引創建、刪除,查看統計或訪問system.profile
userAdmin:允許用戶向system.users集合寫入,可以找指定資料庫里創建、刪除和管理用戶
clusterAdmin:只在admin資料庫中可用,賦予用戶所有分片和複製集相關函數的管理許可權。
readAnyDatabase:只在admin資料庫中可用,賦予用戶所有資料庫的讀許可權
readWriteAnyDatabase:只在admin資料庫中可用,賦予用戶所有資料庫的讀寫許可權
userAdminAnyDatabase:只在admin資料庫中可用,賦予用戶所有資料庫的userAdmin許可權
dbAdminAnyDatabase:只在admin資料庫中可用,賦予用戶所有資料庫的dbAdmin許可權。
root:只在admin資料庫中可用。超級賬號,超級許可權
7.MongoDB是沒有預設管理員賬號的,所以要先添加管理員賬號,添加一個 userAdminAnyDatabase 用戶,這是一個能夠管理所有用戶的的用戶
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>
8.用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
9.用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 教程" }
>