mongodb怎么迅速搭建屬于自己的數(shù)據(jù)庫(kù)
發(fā)表時(shí)間:2023-07-10 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]本章給大家介紹mongodb如何快速搭建屬于自己的數(shù)據(jù)庫(kù)。有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)你們有所幫助。mongoddb安裝在本地安裝直接通過(guò)官網(wǎng)下載機(jī)子對(duì)應(yīng)的壓縮包 mongod...
本章給大家介紹mongodb如何快速搭建屬于自己的數(shù)據(jù)庫(kù)。有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)你們有所幫助。
mongoddb安裝
直接通過(guò)官網(wǎng)下載機(jī)子對(duì)應(yīng)的壓縮包 mongodb
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.4.9.tgztar zxvf mongodb-linux-x86_64-3.2.6.tgz
mv mongodb-linux-x86_64-3.2.6.tgz mongodb
cd mongodb
請(qǐng)根據(jù)你的的系統(tǒng)下載相應(yīng)的版本~
環(huán)境配置&啟動(dòng)服務(wù)器
在文件目錄下建立存放數(shù)據(jù)的文件夾 一般目錄就是 /usr/local/mongodb/data/db/ 通過(guò)運(yùn)行命令去啟動(dòng)mongodb
./bin/mongod --dbpath=/usr/local/mongodb/data/db/ --rest
這里有幾個(gè)參數(shù)重點(diǎn)說(shuō)明一下,mongod為你mongodb 的命令行支持可以啟動(dòng),如果有需要可以通過(guò)編輯 /etc/profile 編輯進(jìn) 全局環(huán)境,dbpath 也就是數(shù)據(jù)路徑,對(duì)應(yīng)你建立的data目錄即可。--rest則是一個(gè)圖形支持
mongodb的默認(rèn)路徑為 //localhost:27017 運(yùn)行成功后訪問(wèn)這個(gè)地址酒會(huì)有成功的提示 加上rest參數(shù) 可以訪問(wèn)//localhost:28017
./bin/mongo 可以打開shell
常用命令:
#查詢所有數(shù)據(jù)庫(kù) show dbs;
#刪除當(dāng)前使用數(shù)據(jù)庫(kù) db.dropDatabase();
#克隆主機(jī)數(shù)據(jù) db.cloneDatabase(“127.0.0.1”);
#修復(fù)當(dāng)前數(shù)據(jù)庫(kù) db.repairDatabase();
#查看當(dāng)前使用的數(shù)據(jù)庫(kù) db.getName();
#顯示當(dāng)前db狀態(tài) db.stats();
#查看當(dāng)前db的鏈接機(jī)器地址 db.version();
云服務(wù)器上部署mongodb環(huán)境
現(xiàn)在云端非常流行,很多人選擇了用云服務(wù)器來(lái)部署自己的項(xiàng)目,這里就介紹一下云端的mongodb配置。
./bin/mongod --fork --dbpath=/usr/local/mongodb/data/db/ --logpath=/usr/local/mongodb/data/log/error.log -logappend --rest
數(shù)據(jù)庫(kù)部署到云服務(wù)器就需要后臺(tái)運(yùn)行,一開始用的centos的forever插件,發(fā)現(xiàn)并不能后臺(tái)運(yùn)行數(shù)據(jù)庫(kù)。查閱了一下資料發(fā)現(xiàn)官方就有命令 --fork 啟動(dòng)后臺(tái)服務(wù) --logpath --logappend參數(shù) 為后臺(tái)服務(wù)加個(gè)log日志 rest效果同上面。
讓數(shù)據(jù)庫(kù)更直觀
密密麻麻的數(shù)據(jù)是不是很丑?很難受?這個(gè)時(shí)候我們就需要一個(gè)美化數(shù)據(jù)庫(kù)的插件了
網(wǎng)上有很多 如 mongovue , adminmongo 可以搜索活著Github上查閱一下。
以下是數(shù)據(jù)庫(kù)加密,我也是上線被攻擊后才痛定思痛更新了加密過(guò)程。
添加超級(jí)管理員
首先,運(yùn)行你的數(shù)據(jù)庫(kù),成功后執(zhí)行shell操作。
> use admin
> db.createUser(
{
user: "your name",
pwd: "your pwd",
roles: [ { role: "root", db: "admin" } ]
}
)
Successfully added user: {
"user" : "admin",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}
root表示超級(jí)權(quán)限,這樣就創(chuàng)建了具有超級(jí)權(quán)限的賬號(hào)了?梢酝ㄟ^(guò)以下命令來(lái)查看用戶。
[Uploading image_088895.png . . .]
db.getUsers()
MongoDB數(shù)據(jù)庫(kù)角色
role指角色,管理控制數(shù)據(jù)庫(kù)的權(quán)限,第一個(gè)用戶最好是root用戶,可以執(zhí)行任何操作,
初始化最好創(chuàng)建root權(quán)限的用戶,當(dāng)開啟auth模式,任何操作都需要權(quán)限才能執(zhí)行。也千萬(wàn)不能直接auth啟動(dòng)后臺(tái)運(yùn)行模式,否則你就沒(méi)有權(quán)限用戶去關(guān)閉數(shù)據(jù)庫(kù)。
Read:允許用戶讀取指定數(shù)據(jù)庫(kù)
readWrite:允許用戶讀寫指定數(shù)據(jù)庫(kù)
dbAdmin:允許用戶在指定數(shù)據(jù)庫(kù)中執(zhí)行管理函數(shù),如索引創(chuàng)建、刪除,查看統(tǒng)計(jì)或訪問(wèn)system.profile
userAdmin:允許用戶向system.users集合寫入,可以找指定數(shù)據(jù)庫(kù)里創(chuàng)建、刪除和管理用戶
clusterAdmin:只在admin數(shù)據(jù)庫(kù)中可用,賦予用戶所有分片和復(fù)制集相關(guān)函數(shù)的管理權(quán)限。
readAnyDatabase:只在admin數(shù)據(jù)庫(kù)中可用,賦予用戶所有數(shù)據(jù)庫(kù)的讀權(quán)限
readWriteAnyDatabase:只在admin數(shù)據(jù)庫(kù)中可用,賦予用戶所有數(shù)據(jù)庫(kù)的讀寫權(quán)限
userAdminAnyDatabase:只在admin數(shù)據(jù)庫(kù)中可用,賦予用戶所有數(shù)據(jù)庫(kù)的userAdmin權(quán)限
dbAdminAnyDatabase:只在admin數(shù)據(jù)庫(kù)中可用,賦予用戶所有數(shù)據(jù)庫(kù)的dbAdmin權(quán)限。
root:只在admin數(shù)據(jù)庫(kù)中可用。超級(jí)賬號(hào),超級(jí)權(quán)限
啟動(dòng)auth模式
在創(chuàng)建完超級(jí)管理員后,才能真正啟動(dòng)加密的數(shù)據(jù)庫(kù),否則即使你自己也無(wú)權(quán)去操作數(shù)據(jù)庫(kù)。
//后臺(tái)模式需要在shell中關(guān)閉之前的普通模式數(shù)據(jù)庫(kù),輸入以下命令
> use admin
> db.shutdownServer()
//終端 啟動(dòng)加密數(shù)據(jù)庫(kù) --auth
$ ./bin/mongod --fork --dbpath=/root/mongodb/db/ --logpath=/root/mongodb/log/error.log -logappend --auth
//通過(guò)命令運(yùn)行數(shù)據(jù)庫(kù) ,在你的運(yùn)行命令加上后綴 --auth,這樣就啟動(dòng)了加密數(shù)據(jù)庫(kù) ,再次執(zhí)行數(shù)據(jù)庫(kù)操作
> show dbs
2017-09-23T14:09:58.922+0800 E QUERY [thread1] Error: listDatabases failed:{
"ok" : 0,
"errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }",
"code" : 13,
"codeName" : "Unauthorized"
} :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
Mongo.prototype.getDBs@src/mongo/shell/mongo.js:62:1
shellHelper.show@src/mongo/shell/utils.js:769:19
shellHelper@src/mongo/shell/utils.js:659:15
@(shellhelp2):1:1
// 發(fā)現(xiàn)報(bào)錯(cuò),需要認(rèn)證信息
> db.auth('your name','your pwd')
成功返回1 失敗返回0 輸入之前創(chuàng)建的超級(jí)賬號(hào),OK,簡(jiǎn)單的加密就完成了。
加密成功,需要認(rèn)證才能操作數(shù)據(jù)庫(kù)
鏈接加密數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)加密后我們的服務(wù)端代碼也要相應(yīng)變動(dòng)。
xxx.db('mongodb://your name: your pwd@localhost:27017/db?authSource=admin');
xxx表示你用的插件 比如 mongoose 、mongoskin之類的。
到此為止,你的數(shù)據(jù)庫(kù)就加密完成了,當(dāng)你的項(xiàng)目變大,你也許還需要?jiǎng)?chuàng)建許多用戶,或者升級(jí)用戶權(quán)限,這些官方都有相關(guān)的API去操作。
以上就是mongodb如何快速搭建屬于自己的數(shù)據(jù)庫(kù)的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!
學(xué)習(xí)教程快速掌握從入門到精通的SQL知識(shí)。