MongoDB系列—入門安裝操作

  • 2019 年 10 月 29 日
  • 筆記

MongoDB

學習大綱:

  1、MongoDB簡介與其它資料庫對比以及數據類型

  2、MongoDB安裝

  3、MongoDB簡單操作

環境要求:

  Linux

 


 

一、MongoDB簡介

1 什麼是MongoDB

   MongoDB是一個基於分散式文件存儲的資料庫。由C++語言編寫。旨在為WEB應用提供可擴展的高性能數據存儲解決方案。

  MongoDB是一個介於關係型資料庫和非關係型資料庫之間的產品,是非關係資料庫當中功能最豐富,最像關係資料庫的。它支援的數據結構非常鬆散,是類似json和bson格式,因此可以存儲比較複雜的數據類型。Mongo最大的特點是它支援的查詢語言非常強大,其語法有點類似於面向對象的查詢語言,幾乎可以實現類似關係資料庫單表查詢的絕大部分功能,而且還能支援對數據建立索引。

2 什麼是NoSQL

  NoSQL(NoSQL=Not Only SQl),意即“不僅僅是SQL”,是一項全新的資料庫革命性運動,早期就有人提出,發展至2009年趨勢越發高漲。NoSQL的擁護者們提倡運用非關係型的數據存儲,相對於鋪天蓋地的關係型資料庫運用,這一概念無疑是一種全新的思維注入。

3 NoSQL資料庫的分類

3.1 鍵值(key-value)存儲資料庫

  這一類資料庫主要會使用到一個哈希表,這個表中有一個特定的鍵和一個指針指向特定的數據。key/value模型對於IT系統來說的優勢在於簡單、易部署。但是如果DBA只對部分分值進行查詢或更新的時候,key/value就顯得低效率了。例如:

Tokyo Cabinet/Tyrant,
Redis, Voldemort, Oracle BDB

 

3.2列存儲資料庫

  這部分資料庫通常是用來應對分散式存儲的海量數據。鍵仍然存在,但是它們的特點是
指向了多個列。這些列是由列家族來安排的。如:Cassandra, HBase, Riak

 

3.3 文檔型資料庫

  文檔型資料庫的靈感是來自於 Lotus Notes 辦公軟體的,而且它同第一種鍵值存儲相類似。該類型的數據模型是版本化的文檔,半結構化的文檔以特定的格式存儲,比如 JSON。文檔型資料庫可 以看作是鍵值資料庫的升級版,允許之間嵌套鍵值。而且文檔型資料庫比鍵值資料庫的查詢效率更高。如:CouchDB, MongoDb. 中國也有文檔型資料庫 SequoiaDB,已經開源。

 

3.4圖形(Graph)資料庫

  圖形結構的資料庫同其他行列以及剛性結構的 SQL 資料庫不同,它是使用靈活的圖形模型,並且能夠擴展到多個伺服器上。NoSQL 資料庫沒有標準的查詢語言(SQL),因此進行資料庫查詢需要制定數據模型。許多 NoSQL 資料庫都有 REST 式的數據介面或者查詢 API。如:Neo4J, InfoGrid, Infinite Graph

 

二、MongoDB與關係型資料庫對比

1 與關係型資料庫術語對比(我們可以發現還是很像的)

 

 

 

2 存儲數據對比

 

 

 3 RDBMS 與 MongoDB對應的術語

 

 

 

三、MongoDB的數據類型

 

 

 

 

 

 

四、MongoDB的下載與安裝

1 下載MongoDB

  下載地址:https://www.mongodb.com/download-center/community

  本博文使用的是:mongodb-linux-x86_64-4.0.9.tgz 版本

2 安裝MongoDB

2.1Linux 安裝

  在 Linux 平台的 MongoDB 為解壓版。我們只要解壓 tgz 文件就可以使用。

2.1.1 下載 ForLinux  平台的 的 MongoDB

 

 2.1.2 將下載的 tgz  包上傳到 Linux 

 

 

 

2.1.3解壓tgz文件

通過tar命令對tgz文件做解壓處理

 

 

 2.1.4 移動 MongoDB

我們將解壓完的 MongoDB 目錄移動到/usr/local 目錄中並改名為 mongodb。(當然這些都不是固定的)

 

 

2.1.5創建資料庫目錄

  MongoDB 的數據存儲在 data 目錄的 db 目錄下,但是這個目錄在安裝過程不會自動創建,需要手動創建 data 目錄,並在 data 目錄中創建 db 目錄。data 目錄可以創建在任何位置。本套影片中,我們將 data 目錄創建鍵 mongodb 的根目錄下。

 

 

 

 

 

 

 至此 Linux 平台中的 MongoDB 就已經安裝完畢。很簡單不是?

 

3 MongoDB的啟動與關閉

3.1 啟動 MongoDB

MongoDB 的啟動方式分為兩種

1)前置啟動
2)後置啟動

  無論哪種啟動方式都需要執行 bin 目錄中的 mongod 命令。MongoDB 在啟動時默認的查找資料庫的路徑為/data/db。如果我們資料庫路徑有變化,需要在該命令中通過–dbpath 參數來指定 db 目錄的路徑(該路徑可以是絕對路徑,也可是相對路徑)

3.1.1 前置啟動

MongoDB 的默認啟動方式為前置啟動。所謂前置啟動就是 MongoDB 啟動進程後會佔
用當前終端窗口。
進入到 MongoDB 的 bin 目錄

執行 bin 目錄中的 mongo 命令。

由於我們的 db 目錄放在 mongodb 的根下,所以在執行該命令時需要通過 –dbpath 參數
指定 db 路徑

 

 

啟動後會在終端中輸出一些啟動資訊。此時終端窗口已被啟動進程所佔用。我們通過啟
動資訊可以看到 MongoDB 默認的監聽埠為 27017、

 

按 Ctrl+C 可結束啟動進程關閉 MongoDB

 

 

 


 

 

3.1.2 後置啟動(關閉後置啟動進程可在文章後部分查看)

  所謂後置啟動就是以守護進程的方式啟動 MongoDB。我們需要在執行 mongod 命令中添加 –fork 參數。需要注意的是,–fork 參數需要配合著–logpath 或者是–syslog 參數使用。–logpath 與–syslog 參數是指定 MongoDB 的日誌文件。MongoDB 的日誌文件可以在系統中的任意位置,本文章中我們在 mongodb 目錄下創建 log 目錄,在該目錄中創建一個名為mongodb.log 的日誌文件。

 

創建 log 目錄

 

 

 

在 log 目錄中創建 mongodb.log 日誌文件

 

 

後置啟動 MongoDB

 

 就此我們就已經啟動成功了!

 

3.1.3常見的啟動參數

 

 我們初學者先大概了解就好,後續我會詳細介紹的。

 

3.1.4 配置文件方式啟動

  如果覺得在啟動 MongoDB 時給定的參數項太多,那麼我們也可以通過配置文件來配置啟動參數,配置文件可以在任意目錄中,配置文件的擴展名應為.conf,配置文件中使用key=value 結構。在執行 MongoDB 時通過–config 參數來指定需要載入的配置文件。

  我們在 mongodb 目錄下創建一個 etc 目錄,在該目錄中創建一個名為 mongodb.conf 的配置文件。

 

 創建 mongodb.conf 配置文件

 

 

編輯配置文件,在配置文件中添加配置項:
1)指定 db 路徑
2)指定日誌文件

3)設置所有ip都可以訪問
4)配置埠
5)配置後端啟動
在配置文件中配置啟動參數時需要注意的是,在參數前不在加–符號,直接以參數名作
為 key 就可以

 

 

通過載入配置文件啟動MongoDB

 

 


 

 

3.1.5配置環境變數 

  為了能夠在任何目錄中執行 bin 目錄中的命令,我們可以將 bin 目錄添加到環境變數中。修 改 /etc/profile 文 件 , 添 加 export PATH=/usr/local/mongodb/bin:$PATH 。/usr/local/monogdb/bin 為 MongoDB 的 bin 目錄的絕對路徑。同學們可根據自己的情況來指

我們在配置文件的最後一行加上如下配置

 

 

 

重新載入/etc/profile 文件(這樣只是臨時生效,永久生效還需要重新啟動linux)

 

 

測試結果

 

 

 

 

3.2 關閉MongoDB

3.2.1使用Ctrl+C關閉 

  如果我們的啟動方式是前置啟動,那麼直接使用快捷鍵 Ctrl+C 就可以關閉 MongoDB。這種關閉方式會等待當前進行中的的操作完成,所以依然是安全的關閉方式。

 

3.2.2使用kill命令關閉

  我們可以通過Linux的kill命令結束MongoDB進程,然後刪除data目錄中的mongod.lock文件,否則下次無法啟動。但是此方法不建議使用,因為會造成數據損壞現象

 

3.2.3使用MongoDB的函數關閉

在MongoDB中提供了兩個關閉資料庫的函數:

db.shutdownServer()

db.runCommand(“shutdown”)

如上兩個方法都需要在admin庫中執行,並且都是安全的關閉方式

具體方法:

啟動bin目錄下的 mongo客戶端文件(首先mongod是啟動的)

./mongo

Ctrl + C退出客戶端即可。

 

3.2.4 使用 mongod  命令關閉 MongoDB

./mongod –shutdown –dbpath<資料庫路徑>

例如:./mongod –shutdown –dbpath /usr/local/mongodb/data/db

mongod 命令的 shutdown 選項能安全的關閉 MongoDb服務

 

上邊提到了好幾次安全關閉,安全關閉到底指的是什麼呢?

i比如我們在處理數據的時候,它還有後台進程正在進行工作,但是你直接啟動關閉命令了,它會等手頭活忙完然後才會關閉,否則會造成數據丟失  等不可預估後果。

 

就此本章入門的東西就ok了

有任何問題隨時留言哦,歡迎指出問題!