linux + MongoDB 安裝 + 部署 + 講解 (滿滿乾貨看完記得收藏噢)

話很少說開始了!

安裝

  安裝就依據菜鳥教程的進行安裝 傳送門 => https://www.runoob.com/mongodb/mongodb-linux-install.htmlhtml

  好啦!如今你應該已經安裝完畢了,你應該也能夠在小黑框進行CURD(增刪改查)了吧!node

  安裝是安裝好了,這時候你有沒有趕腳怪怪的?mysql

  mongodb難道直接輸入 mongo 就開始使用?linux

  難道就沒有用戶名密碼嗎?redis

  答案是固然有了,你在連接mongo的時候有沒有發現這一句話 => Server has startup warnings:sql

  這就是權限的問題 也就是你在開啓mongod服務的時候沒有開啓 auth 的模式mongodb

  這時候就要殺死當前的mongod的進程數據庫

   若是沒有的話就本身編寫一個json

vim mongodb.conf

dbpath=/www/server/mongodb/data
logpath=/www/server/mongodb/log/mongodb.log
logappend=true
port=27017
fork=true #auth=true 這個必須在你設置好角色後在進行開啓(由於若是你沒有直接開啓這個而沒有用戶你會很是尷尬,只能看着而不能進行操做)(初學的話最好設置一個root角色)
也就是先不要開啓 而後添加一個use test庫設置一個root權限(最nb的權限)
而後kill mongod的進程id 而後取消auth的#註釋
而後使用./mongod -f mongodb.conf 從新安裝配置文件開啓mongod服務

     若是你想了解配置文件各個參數的問題 能夠去這裏 傳送門=>  http://www.javashuo.com/article/p-nozgxmgv-ko.htmlvim

  若是你不會設置用戶權限能夠去這裏講的這兩個都很詳細 傳送門=> http://www.javashuo.com/article/p-nlbefcdk-bu.html    http://www.javashuo.com/article/p-agpqytuh-dv.html

  把上面講的都操做過了那麼基本的mongodb的使用你就瞭解了。

它的特色是高性能、易部署、易使用,存儲數據很是方便。主要功能特性有:

  *面向集合存儲,易存儲對象類型的數據。
  *模式自由。
  *支持動態查詢
  *支持徹底索引,包含內部對象。
  *支持查詢。
  *支持複製和故障恢復。
  *使用高效的二進制數據存儲,包括大型對象(如視頻等)。
  *自動處理碎片,以支持雲計算層次的擴展性。
  *支持RUBYPYTHONJAVAC++PHPC#等多種語言。
  *文件存儲格式爲BSON(一種JSON的擴展)。
  *可經過網絡訪問。

瞭解MongoDB

  首先,我來告訴你一些MongoDB與傳統的Mysql的區別吧!

  Mysql:

    1.關係型數據庫。

    2.在不一樣的引擎上有不一樣 的存儲方式。

    3.查詢語句是使用傳統的sql語句,擁有較爲成熟的體系,成熟度很高。

    4.開源數據庫的份額在不斷增長,mysql的份額頁在持續增加。

    5.缺點就是在海量數據處理的時候效率會顯著變慢。

  MongoDB:

    1.非關係型數據庫(nosql ),屬於文檔型數據庫。先解釋一下文檔的數據庫,便可以存放xml、json、bson類型系那個的數據。這些數據具有自述性(self-describing),呈現分層的樹狀數據結構。數據結構由鍵值(key=>value)對組成。

    2.存儲方式:虛擬內存+持久化。

    3.查詢語句:是獨特的Mongodb的查詢方式。

    4.適合場景:事件的記錄,內容管理或者博客平臺等等。

    5.架構特色:能夠經過副本集,以及分片來實現高可用。

    6.數據處理:數據是存儲在硬盤上的,只不過須要常常讀取的數據會被加載到內存中,將數據存儲在物理內存中,從而達到高速讀寫(直接讀寫內存)。

    7.成熟度與普遍度:新興數據庫,成熟度較低,Nosql數據庫中最爲接近關係型數據庫,比較完善的DB之一,適用人羣不斷在增加。

    優點:

      1).快速!在適量級的內存的Mongodb的性能是很是迅速的,它將熱數據存儲在物理內存中,使得熱數據的讀寫變得十分快,

      2).高擴展!

      3).自身的Failover機制!

      4).json的存儲格式!

Mysql和MongoDB的應用場景

  • 若是須要將mongodb做爲後端db來代替mysql使用,即這裏mysql與mongodb 屬於平行級別,那麼,這樣的使用可能有如下幾種狀況的考量: (1)mongodb所負責部分以文檔形式存儲,可以有較好的代碼親和性,json格式的直接寫入方便。(如日誌之類) (2)從data models設計階段就將原子性考慮於其中,無需事務之類的輔助。開發用如nodejs之類的語言來進行開發,對開發比較方便。 (3)mongodb自己的failover機制,無需使用如MHA之類的方式實現。

  • 將mongodb做爲相似redis ,memcache來作緩存db,爲mysql提供服務,或是後端日誌收集分析。 考慮到mongodb屬於nosql型數據庫,sql語句與數據結構不如mysql那麼親和 ,也會有不少時候將mongodb作爲輔助mysql而使用的類redis memcache 之類的緩存db來使用。 亦或是僅做日誌收集分析。

相關文章
相關標籤/搜索