首頁  >  文章  >  資料庫  >  mongodb如何快速建構屬於自己的資料庫

mongodb如何快速建構屬於自己的資料庫

青灯夜游
青灯夜游原創
2018-09-21 17:03:472318瀏覽

本章來介紹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

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,简单的加密就完成了。

 

mongodb如何快速建構屬於自己的資料庫

加密成功,需要認證才能操作資料庫

链接加密数据库

数据库加密后我们的服务端代码也要相应变动。

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

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

到此为止,你的数据库就加密完成了,当你的项目变大,你也许还需要创建许多用户,或者升级用户权限,这些官方都有相关的API去操作。

以上是mongodb如何快速建構屬於自己的資料庫的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn