Mongo
應(yīng)用管理和服務(wù)器管理
數(shù)據(jù)管理
配置身份驗證
admin和local是兩個特殊的數(shù)據(jù)庫肺然,它們當(dāng)中的用戶可對任何數(shù)據(jù)庫進(jìn)行操作侍筛,這兩個數(shù)據(jù)庫中的用戶可作為超級用戶
在開啟安全檢查的數(shù)據(jù)庫唄啟動前辨绊,應(yīng)該至少添加一個管理員用戶
添加一名管理員用戶
use admin
db.addUser("root","123456")
切換到test數(shù)據(jù)庫装畅,并增加兩個用戶
use test
db.addUser("test_user","123456")
// 創(chuàng)建只讀權(quán)限用戶
db.addUser("read_user","123456",true)
- 運行addUser時,必須擁有相應(yīng)數(shù)據(jù)庫的寫入權(quán)限
- addUser的第三個參數(shù)為readOnly,設(shè)置為true時乳蛾,為只讀
使用--auth參數(shù)重啟服務(wù)器抛杨,以啟用安全檢查
身份驗證的工作原理
數(shù)據(jù)庫中的用戶時作為文檔唄存儲在system.users集合中的够委。
想要刪除一個用戶,只需要從集合中刪除這一用戶的文檔
db.system.users.remove({
"user":"test_user"
})
建立和刪除索引
在獨立的服務(wù)器上建立索引
在獨立的服務(wù)器上怖现,可在空閑時間于后臺建立索引茁帽,在后臺建立索引,可利用backgroud為true參數(shù)運行命令
db.foo.ensureIndex(
{
"somefield":1
},
{
"backgroud":true
}
)
在前臺建立索引要比在后臺建立索引耗時少屈嗤,但在建立索引期間會鎖定數(shù)據(jù)庫
在發(fā)副本集上建立索引
在主節(jié)點中建立索引潘拨,然后等待其唄復(fù)制到其他備份節(jié)點即可。
但是對于較大的集合饶号,推薦的方式是:
- 關(guān)閉一個備份節(jié)點
- 將其作為獨立的節(jié)點啟動
- 在這一服務(wù)器上建立索引
- 重新將其作為成員加入副本集
- 對每個備份節(jié)點指定同樣的操作
對于主節(jié)點來說铁追,有兩種選擇
- 在后臺對主節(jié)點建立索引
- 關(guān)閉主節(jié)點,執(zhí)行上述步驟
在分片集群上建立索引
在分片集群上建立索引茫船。與在副本集中建立索引的步驟相同琅束,不過需要在每個分片上分別建立一次
刪除索引
如果不在需要索引,可使用dropIndexes命令并指定索引名來刪除索引
db.runCommand({
"dropIndexes”:"foo",
"index":"alpabet"
})
啟動和停止mongodb
從命令行啟動
配置選項
- --path:指定一個目錄為數(shù)據(jù)目錄(默認(rèn)為/data/db/)
- --port:指定服務(wù)器監(jiān)聽的端口號(默認(rèn)為27017)
- --fork:調(diào)用fork創(chuàng)建子進(jìn)程算谈,在后臺運行mongodb
- --logpath:所有輸出信息會被發(fā)送到指定文件涩禀,如果文件不存在,會自動生成然眼,如果存在艾船,會覆蓋掉
- --directoryperdb:將每個數(shù)據(jù)庫存放在單獨的目錄中
- --config 額外加載配置文件,未在命令行中指定的玄仙將使用配置文件中的參數(shù)
停止mongodb
最簡潔的方法是使用shutdown命令,必須在admin數(shù)據(jù)庫上執(zhí)行
use admin
db.shutdownServer()
安全性
不要將mongodb服務(wù)器直接暴露在外網(wǎng)上屿岂,最好設(shè)置防火墻践宴,只允許內(nèi)網(wǎng)地址對mongo的訪問
安全性選項;
- --bind_ip:指定mongo監(jiān)聽的端口爷怀。
- --nounixsocket:如果不打算使用unix socket進(jìn)行連接阻肩,則可禁用此選項
- noscripting:禁止服務(wù)器端JavaScript腳本的運行
注:
- 上述測試在MongoDB 3.4.3-8-g05b19c6中成功
- 上述文字皆為個人看法,如有錯誤或建議請及時聯(lián)系我