1、下載安裝包
mongodb-win32-x86_64-enterprise-windows-64-3.6.4.zip
解壓
安裝失敗(當前環境windows server2012 R2):已驗證可以正常安裝
先安裝Windows8.1-KB2919442-x64.msu
再安裝 Windows8.1-KB2919355-x64.msu
再安裝 NDP461-KB3102436-x86-x64-AllOS-ENU.exe(.net framework 4.6.1)
上面的步驟可能會要求重啟電腦,全部安裝成功之后,再安裝
vcredist_x64.exe
成功,完美。
新建數據存放路徑
進入bin目錄下,cmd啟動mongodb服務。
mongod --dbpath D:\software\MongoDB\data\db
在瀏覽器上訪問,出現如下頁面表示安裝成功:
如果不成功,可以查看端口是否被占用。
2、將mongodb配置為服務
在data下新建log文件夾,存放日志
新建配置文件mongo.config,並配置路徑
dbpath=E:\mongodb\mongodb3.6.4\data\db
logpath=E:\mongodb\mongodb3.6.4\data\log\mongo.log
以管理員運行cmd,安裝mongodb服務。
mongod --config E:\mongodb3.6.4\mongodb\mongo.config --install --serviceName "MongoDB"
mongo服務卸載
mongod.exe --remove --serviceName "MongoDB"
刪除這兩個文件(產生這個錯誤的的原因應該是cmd窗口開啟了mongodb服務,關閉cmd窗口即可)
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數據庫中可用。超級賬號,超級權限
MongoDB是沒有默認管理員賬號的,所以要先添加管理員賬號,添加一個 userAdminAnyDatabase 用戶,這是一個能夠管理所有用戶的的用戶
C:\Windows\system32>mongo MongoDB shell version v3.6.4 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 3.6.4 > use admin switched to db admin > db.createUser({user:"admin",pwd:"wg2017",roles:[{"role":"userAdminAnyDatabase","db":"admin"}]}) Successfully added user: { "user" : "admin", "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ] } > exit bye
用admin用戶登錄mongodb,創建數據庫etm和它對應的用戶etm,所有用戶只能在用戶所在的數據庫登錄,管理員可以管理所有的數據庫,但是不能直接管理其它數據庫,要先在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 etm switched to db etm > db.createUser({user:"etm",pwd:"123",roles:[{"role":"readWrite","db":"etm"}]}) Successfully added user: { "user" : "etm", "roles" : [ { "role" : "readWrite", "db" : "etm" } ] } > exit
用etm登錄etm庫,插入一條數據並查詢
C:\Windows\system32>mongo -u etm -p 123 localhost:27017/etm MongoDB shell version v3.6.4 connecting to: mongodb://localhost:27017/etm MongoDB server version: 3.6.4 > db.myCol.insert({title: 'MongoDB 教程'}) WriteResult({ "nInserted" : 1 }) > db.myCol.find() { "_id" : ObjectId("5a32ac7838335872bbc1fd0b"), "title" : "MongoDB 教程" } >
需要遠程連接時,在config文件中增加一條配置即可:
bind_ip = 192.168.168.180