您好,登錄后才能下訂單哦!
小編給大家分享一下mongodb怎么快速搭建屬于自己的數據庫,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
mongoddb安裝
在本地安裝
直接通過官網下載機子對應的壓縮包 mongodb
在云服務器(centos系統)安裝
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
請根據你的的系統下載相應的版本~
環境配置&啟動服務器
在文件目錄下建立存放數據的文件夾 一般目錄就是 /usr/local/mongodb/data/db/ 通過運行命令去啟動mongodb
./bin/mongod --dbpath=/usr/local/mongodb/data/db/ --rest
這里有幾個參數重點說明一下,mongod為你mongodb 的命令行支持可以啟動,如果有需要可以通過編輯 /etc/profile 編輯進 全局環境,dbpath 也就是數據路徑,對應你建立的data目錄即可。--rest則是一個圖形支持
mongodb的默認路徑為 //localhost:27017 運行成功后訪問這個地址酒會有成功的提示 加上rest參數 可以訪問//localhost:28017
./bin/mongo 可以打開shell
常用命令:
#查詢所有數據庫 show dbs; #刪除當前使用數據庫 db.dropDatabase(); #克隆主機數據 db.cloneDatabase(“127.0.0.1”); #修復當前數據庫 db.repairDatabase(); #查看當前使用的數據庫 db.getName(); #顯示當前db狀態 db.stats(); #查看當前db的鏈接機器地址 db.version();
云服務器上部署mongodb環境
現在云端非常流行,很多人選擇了用云服務器來部署自己的項目,這里就介紹一下云端的mongodb配置。
./bin/mongod --fork --dbpath=/usr/local/mongodb/data/db/ --logpath=/usr/local/mongodb/data/log/error.log -logappend --rest
數據庫部署到云服務器就需要后臺運行,一開始用的centos的forever插件,發現并不能后臺運行數據庫。查閱了一下資料發現官方就有命令 --fork 啟動后臺服務 --logpath --logappend參數 為后臺服務加個log日志 rest效果同上面。
讓數據庫更直觀
密密麻麻的數據是不是很丑?很難受?這個時候我們就需要一個美化數據庫的插件了
網上有很多 如 mongovue , adminmongo 可以搜索活著Github上查閱一下。
以下是數據庫加密,我也是上線被攻擊后才痛定思痛更新了加密過程。
添加超級管理員
首先,運行你的數據庫,成功后執行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表示超級權限,這樣就創建了具有超級權限的賬號了。可以通過以下命令來查看用戶。
[Uploading image_088895.png . . .]
db.getUsers()
MongoDB數據庫角色
role指角色,管理控制數據庫的權限,第一個用戶最好是root用戶,可以執行任何操作,
初始化最好創建root權限的用戶,當開啟auth模式,任何操作都需要權限才能執行。也千萬不能直接auth啟動后臺運行模式,否則你就沒有權限用戶去關閉數據庫。
Read:允許用戶讀取指定數據庫
readWrite:允許用戶讀寫指定數據庫
dbAdmin:允許用戶在指定數據庫中執行管理函數,如索引創建、刪除,查看統計或訪問system.profile
userAdmin:允許用戶向system.users集合寫入,可以找指定數據庫里創建、刪除和管理用戶
clusterAdmin:只在admin數據庫中可用,賦予用戶所有分片和復制集相關函數的管理權限。
readAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀權限
readWriteAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀寫權限
userAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的userAdmin權限
dbAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的dbAdmin權限。
root:只在admin數據庫中可用。超級賬號,超級權限
啟動auth模式
在創建完超級管理員后,才能真正啟動加密的數據庫,否則即使你自己也無權去操作數據庫。
//后臺模式需要在shell中關閉之前的普通模式數據庫,輸入以下命令 > use admin > db.shutdownServer() //終端 啟動加密數據庫 --auth $ ./bin/mongod --fork --dbpath=/root/mongodb/db/ --logpath=/root/mongodb/log/error.log -logappend --auth //通過命令運行數據庫 ,在你的運行命令加上后綴 --auth,這樣就啟動了加密數據庫 ,再次執行數據庫操作 > 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 // 發現報錯,需要認證信息 > db.auth('your name','your pwd') 成功返回1 失敗返回0 輸入之前創建的超級賬號,OK,簡單的加密就完成了。
加密成功,需要認證才能操作數據庫
鏈接加密數據庫
數據庫加密后我們的服務端代碼也要相應變動。
xxx.db('mongodb://your name: your pwd@localhost:27017/db?authSource=admin');
xxx表示你用的插件 比如 mongoose 、mongoskin之類的。
以上是mongodb怎么快速搭建屬于自己的數據庫的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。