天天看點

MongoDB安裝

MongoDB是一個基于分布式檔案存儲的資料庫,屬于文檔型的,雖然也是NoSQL資料庫的一種,但是與redis、memcached等資料庫有些差別。MongoDB由C++語言編寫。旨在為WEB應用提供可擴充的高性能資料存儲解決方案。

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

2007年10月,MongoDB由10gen團隊所發展。2009年2月首度推出。

MongoDB 可以将資料存儲為一個文檔,資料結構由鍵值(key=>value)對組成。MongoDB 文檔類似于 JSON 對象。字段值可以包含其他文檔、數組及文檔數組。

MongoDB官網位址,目前最新版是3.6:

<a href="https://www.mongodb.com/">https://www.mongodb.com/</a>

關于JSON的描述可以參考以下文章:

<a href="http://www.w3school.com.cn/json/index.asp">http://www.w3school.com.cn/json/index.asp</a>

特點:

面向集合存儲,易存儲對象類型的資料

模式自由

支援動态查詢

支援完全索引,包含内部對象

支援查詢

支援複制和故障恢複

使用高效的二進制資料存儲,包括大型對象(如視訊等)

自動處理碎片,以支援雲計算層次的擴充性

支援RUBY,PYTHON,JAVA,C++,PHP,C#等多種語言

檔案存儲格式為BSON(一種JSON的擴充)

可通過網絡通路

不管我們學習什麼資料庫都應該學習其中的基礎概念,在mongodb中基本的概念是文檔、集合、資料庫,下圖是MongoDB和關系型資料庫的術語以及概念的對比:

MongoDB安裝

以下使用兩張圖對比一下關系型資料庫和MongoDB資料庫的資料存儲結構:

關系型資料庫資料結構:

MongoDB安裝

MongoDB資料結構:

MongoDB安裝

首先上官方的安裝文檔:

<a href="https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/">https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/</a>

mongodb可以通過yum安裝,首先需要建立官方提供的yum源:

1.進入/etc/yum.repos.d/目錄下:

cd /etc/yum.repos.d/

2.編輯配置檔案加入以下内容:

3.編輯完成之後檢視是否有mongodb相關的rpm包:

如上,可以看到yum源中已經有mongodb3.6的rpm包。

4.然後就是直接yum安裝了:

yum install -y mongodb-org

5.在指令行上輸入mongo,然後按兩下tap鍵,出現以下指令代表安裝成功:

1.先看一下mongodb的配置檔案:

2.啟動 mongod 服務:

提示:如果mongodb監聽端口并不是預設的27017,則在連接配接的時候需要加--port 選項,例如:

mongo --port 27018

3.在本機可以直接運作指令mongo進入到mongodb shell中:

可以看到,報了一個錯誤資訊沒有找到/root/.dbshell,這個沒關系,等你裡面輸入了指令後就會自動生成,這個檔案是用來記錄指令曆史的。其他的警告資訊不用管,不影響使用。

連接配接遠端的mongodb,需要加--host來指定目标IP,例如:

[root@localhost ~]# mongo --host 192.168.77.130 --port 27017

如果遠端的mongodb設定了驗證,則在連接配接的時候需要帶使用者名和密碼:

mongo -uusername -ppasswd --authenticationDatabase db

1.進入到MongoDB裡,切換到admin庫,因為得到admin庫裡才能進行使用者相關的操作:

2.建立使用者:

以上我們建立了一個admin使用者,user指定使用者,customData為說明字段,可以省略,pwd為密碼,roles指定使用者的角色,role相當于指定權限,db指定庫名,建立使用者時必須針對一個庫。

3.列出所有的使用者:

4.檢視目前庫下所有的使用者

5.删除使用者:

6.以上我們建立了一個admin使用者,但是若要使用者生效,還需要編輯啟動腳本vim /usr/lib/systemd/system/mongod.service,在OPTIONS=後面增--auth:

重新開機服務:

7.使用admin使用者登入MongoDB:

8.再來建立一個使用者:

以上建立的test1使用者對db1庫有讀寫權限,對db2庫有隻讀權限。之是以先use db1,表示使用者在 db1 庫中建立,就一定要db1庫驗證身份,即使用者的資訊跟随資料庫。比如上述 test1雖然有 db2 庫的讀取權限,但是一定要先在db1庫進行身份驗證,直接通路會提示驗證失敗。

在db1中驗證身份:

<b>本文轉自 ZeroOne01 51CTO部落格,原文連結:http://blog.51cto.com/zero01/2057717,如需轉載請自行聯系原作者</b>