本章來介紹mongodb如何快速建立屬於自己的資料庫。有一定的參考價值,有需要的朋友可以參考一下,希望對你們有幫助。
mongoddb安裝
#在本機安裝
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
常用指令:
#查询所有数据库 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啟動後台運作模式,否則你就沒有權限使用者去關閉資料庫。啟動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之类的。
到此为止,你的数据库就加密完成了,当你的项目变大,你也许还需要创建许多用户,或者升级用户权限,这些官方都有相关的API去操作。
以上是mongodb如何快速建構屬於自己的資料庫的詳細內容。更多資訊請關注PHP中文網其他相關文章!