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

本章給大家介紹mongodb如何快速搭建屬于自己的數(shù)據(jù)庫。有一定的參考價值,有需要的朋友可以參考一下,希望對你們有所幫助。

mongoddb安裝

  • 在本地安裝

直接通過官網(wǎ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)下載相應的版本~

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

在文件目錄下建立存放數(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ù)路徑,對應你建立的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”);? #修復當前數(shù)據(jù)庫?db.repairDatabase();? #查看當前使用的數(shù)據(jù)庫??db.getName();? #顯示當前db狀態(tài)??db.stats();? #查看當前db的鏈接機器地址??db.version();

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

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

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

數(shù)據(jù)庫部署到云服務器就需要后臺運行,一開始用的centos的forever插件,發(fā)現(xiàn)并不能后臺運行數(shù)據(jù)庫。查閱了一下資料發(fā)現(xiàn)官方就有命令 --fork 啟動后臺服務 –logpath –logappend參數(shù) 為后臺服務加個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)限用戶去關閉數(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ù)庫中可用,賦予用戶所有分片和復制集相關函數(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中關閉之前的普通模式數(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ù)庫加密后我們的服務端代碼也要相應變動。

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

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

到此為止,你的數(shù)據(jù)庫就加密完成了,當你的項目變大,你也許還需要創(chuàng)建許多用戶,或者升級用戶權(quán)限,這些官方都有相關的API去操作。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊5 分享