溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

mongodb怎么快速搭建屬于自己的數(shù)據(jù)庫

發(fā)布時間:2020-09-14 13:52:06 來源:億速云 閱讀:150 作者:小新 欄目:MySQL數(shù)據(jù)庫

小編給大家分享一下mongodb怎么快速搭建屬于自己的數(shù)據(jù)庫,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

mongoddb安裝

  • 在本地安裝

直接通過官網(wǎng)下載機子對應(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

mongodb怎么快速搭建屬于自己的數(shù)據(jù)庫

請根據(jù)你的的系統(tǒng)下載相應(yīng)的版本~

環(huán)境配置&啟動服務(wù)器

在文件目錄下建立存放數(shù)據(jù)的文件夾 一般目錄就是 /usr/local/mongodb/data/db/ 通過運行命令去啟動mongodb

./bin/mongod --dbpath=/usr/local/mongodb/data/db/ --rest

這里有幾個參數(shù)重點說明一下,mongod為你mongodb 的命令行支持可以啟動,如果有需要可以通過編輯 /etc/profile 編輯進 全局環(huán)境,dbpath 也就是數(shù)據(jù)路徑,對應(yīng)你建立的data目錄即可。--rest則是一個圖形支持
mongodb的默認路徑為 //localhost:27017 運行成功后訪問這個地址酒會有成功的提示 加上rest參數(shù) 可以訪問//localhost:28017

./bin/mongo 可以打開shell
常用命令:

#查詢所有數(shù)據(jù)庫    show dbs;
#刪除當前使用數(shù)據(jù)庫   db.dropDatabase(); 
#克隆主機數(shù)據(jù)   db.cloneDatabase(“127.0.0.1”); 
#修復(fù)當前數(shù)據(jù)庫 db.repairDatabase(); 
#查看當前使用的數(shù)據(jù)庫  db.getName(); 
#顯示當前db狀態(tài)  db.stats(); 
#查看當前db的鏈接機器地址  db.version();

云服務(wù)器上部署mongodb環(huán)境

現(xiàn)在云端非常流行,很多人選擇了用云服務(wù)器來部署自己的項目,這里就介紹一下云端的mongodb配置。

./bin/mongod --fork --dbpath=/usr/local/mongodb/data/db/ --logpath=/usr/local/mongodb/data/log/error.log -logappend --rest

數(shù)據(jù)庫部署到云服務(wù)器就需要后臺運行,一開始用的centos的forever插件,發(fā)現(xiàn)并不能后臺運行數(shù)據(jù)庫。查閱了一下資料發(fā)現(xiàn)官方就有命令 --fork 啟動后臺服務(wù) --logpath --logappend參數(shù) 為后臺服務(wù)加個log日志 rest效果同上面。

讓數(shù)據(jù)庫更直觀

密密麻麻的數(shù)據(jù)是不是很丑?很難受?這個時候我們就需要一個美化數(shù)據(jù)庫的插件了

網(wǎng)上有很多 如 mongovue , adminmongo 可以搜索活著Github上查閱一下。

以下是數(shù)據(jù)庫加密,我也是上線被攻擊后才痛定思痛更新了加密過程。

添加超級管理員

首先,運行你的數(shù)據(jù)庫,成功后執(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表示超級權(quán)限,這樣就創(chuàng)建了具有超級權(quán)限的賬號了。可以通過以下命令來查看用戶。

[Uploading image_088895.png . . .]

db.getUsers()

MongoDB數(shù)據(jù)庫角色

role指角色,管理控制數(shù)據(jù)庫的權(quán)限,第一個用戶最好是root用戶,可以執(zhí)行任何操作,

初始化最好創(chuàng)建root權(quán)限的用戶,當開啟auth模式,任何操作都需要權(quán)限才能執(zhí)行。也千萬不能直接auth啟動后臺運行模式,否則你就沒有權(quán)限用戶去關(guān)閉數(shù)據(jù)庫。

  • Read:允許用戶讀取指定數(shù)據(jù)庫

  • readWrite:允許用戶讀寫指定數(shù)據(jù)庫

  • dbAdmin:允許用戶在指定數(shù)據(jù)庫中執(zhí)行管理函數(shù),如索引創(chuàng)建、刪除,查看統(tǒng)計或訪問system.profile

  • userAdmin:允許用戶向system.users集合寫入,可以找指定數(shù)據(jù)庫里創(chuàng)建、刪除和管理用戶

  • clusterAdmin:只在admin數(shù)據(jù)庫中可用,賦予用戶所有分片和復(fù)制集相關(guān)函數(shù)的管理權(quán)限。

  • readAnyDatabase:只在admin數(shù)據(jù)庫中可用,賦予用戶所有數(shù)據(jù)庫的讀權(quán)限

  • readWriteAnyDatabase:只在admin數(shù)據(jù)庫中可用,賦予用戶所有數(shù)據(jù)庫的讀寫權(quán)限

  • userAdminAnyDatabase:只在admin數(shù)據(jù)庫中可用,賦予用戶所有數(shù)據(jù)庫的userAdmin權(quán)限

  • dbAdminAnyDatabase:只在admin數(shù)據(jù)庫中可用,賦予用戶所有數(shù)據(jù)庫的dbAdmin權(quán)限。

  • root:只在admin數(shù)據(jù)庫中可用。超級賬號,超級權(quán)限

啟動auth模式

在創(chuàng)建完超級管理員后,才能真正啟動加密的數(shù)據(jù)庫,否則即使你自己也無權(quán)去操作數(shù)據(jù)庫。

 //后臺模式需要在shell中關(guān)閉之前的普通模式數(shù)據(jù)庫,輸入以下命令
 > use admin
 > db.shutdownServer()
//終端 啟動加密數(shù)據(jù)庫 --auth
$ ./bin/mongod --fork --dbpath=/root/mongodb/db/ --logpath=/root/mongodb/log/error.log -logappend --auth
//通過命令運行數(shù)據(jù)庫 ,在你的運行命令加上后綴 --auth,這樣就啟動了加密數(shù)據(jù)庫 ,再次執(zhí)行數(shù)據(jù)庫操作
> 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)報錯,需要認證信息
> db.auth('your name','your pwd')
成功返回1  失敗返回0 輸入之前創(chuàng)建的超級賬號,OK,簡單的加密就完成了。

mongodb怎么快速搭建屬于自己的數(shù)據(jù)庫

加密成功,需要認證才能操作數(shù)據(jù)庫

鏈接加密數(shù)據(jù)庫

數(shù)據(jù)庫加密后我們的服務(wù)端代碼也要相應(yīng)變動。

xxx.db('mongodb://your name: your pwd@localhost:27017/db?authSource=admin');

xxx表示你用的插件 比如 mongoose 、mongoskin之類的。

以上是mongodb怎么快速搭建屬于自己的數(shù)據(jù)庫的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI