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