MongoDB學習筆記—Linux下搭建MongoDB環境

1.MongoDB簡單說明

  a MongoDB是由C++語言編寫的一個基於分佈式文件存儲的開源數據庫系統,它的目的在於爲WEB應用提供可擴展的高性能數據存儲解決方案。
  b MongoDB是一個介於關係型數據庫和非關係型數據庫之間的產品,是非關係型數據庫當中功能最豐富,最像關係型數據庫的。它支持的數據結構很是鬆散,會將數據存儲爲一個文檔,數據結構由鍵值對(key=>value)組成,是相似於json的bson格式,字段值能夠包含其它文檔、數組和文檔數組,所以能夠存儲比較複雜的數據類型。
  c MongoDB最大的特色就是它支持的查詢語言很是強大,其語法有點相似於面向對象的查詢語言,幾乎能夠實現相似關係型數據庫單表查詢的絕大部分功能,並且還支持對數據創建索引。
  d MongoDB的主要特色(來自於網上,主要爲了咱們初步瞭解)
    d.1 MongoDB提供了一個面向文檔存儲,操做起來比較簡單和容易的非關係型數據庫。
    d.2 你能夠在MongoDB記錄中設置任何屬性的索引來實現更快的排序。
    d.3 你能夠經過本地u或者網絡建立數據鏡像,這使得MongoDB含有更強的擴展性。
    d.4 若是負載的增長(須要更多的存儲空間和更強的處理能力),它能夠分佈在計算機網絡中的其它節點上,這就是所謂的分片。
    d.5 MongoDB支持豐富的查詢表達式,查詢指令使用JSON形式的標記,可輕易查詢文檔中內嵌的對象和數組。        d.6 MongoDB使用update()命令能夠實現替換完成的文檔(數據)或者一些指定的數據字段。        d.7 MongoDB中的Map/Reduce主要是用來對數據進行批量處理和聚合操做,Map函數調用emit(key,value)遍歷集合中全部的記錄,將key於value傳遞給Reduce函數進行處理。另外Map函數和Reduce函數是使用JavaScript編寫的,因此能夠經過db.runCommand和mapreduce命令來執行MapReduce操做。        d.8 GridFS是MongoDB中的一個內置功能,能夠用於存放大量小文件。
    d.9 MongoDB容許在服務端執行腳本,能夠用JavaScript編寫某個函數,直接在服務端執行,也能夠吧函數的定義存儲在服務端,下次直接調用便可。
    d.10  MongoDB支持各類編程語言:RUBY、PYTHON、JAVA、C++、PHP、C#等多種語言而且MongoDB的安裝也很是簡單。
  e 由於想將日誌管理集中到MongoDB,因此簡單學習了一下,將學習的心得分享給你們。
  f MongoDB官網:http://www.mongodb.org/ 
  g MongoDB學習網站:http://www.runoob.com/mongodb

2.準備工做

  a 經過上面簡單的介紹以後咱們已經瞭解了MongoDB的基本信息,那麼接下來咱們首先須要在Linux下搭建它而且來使用它。
  b MongoDB包下載地址:http://www.mongodb.org/downloads
  c 操做須要的軟件以及系統以下:虛擬機(Vmware),虛擬機中安裝的Centos系統,Xshell,Xftp, MongoDB包。

3.MongoDB安裝

  a 經過上面簡單的準備工做以後,咱們已經擁有了能夠安裝的包和發佈的環境,若是上面沒有準備充分,請自行準備,下面咱們開始進行搭建環境
  b 使用XShell鏈接Centos,鏈接成功後使用命令跳轉到local下面建立本身的文件夾kencery,在此文件夾下面建立mongoDB文件夾,命令以下:
    b.1  (1):cd usr/local/    (2):mkdir kencery    (3):cd kencery/   (4):mkdir mongoDB(5):cd mongoDB/
  c 而後使用Xftp將在上面下載的mongoDB包(mongodb-linux-x86_64-3.2.8.tgz)複製到mongoDB文件夾裏面,而且將包解壓,解壓以後命名爲mongoDB,如圖所示:
    c.1 tar -zxvf mongodb-linux-x86_64-3.2.8.tgz 
    c.2 mv mongodb-linux-x86_64-3.2.8 mongodb
    
  d 解壓以後跳轉到mongodb下進行操做(cd mongodb/),如圖所示:
    
  e 如上圖所示,您發現多了兩個文件夾,一個是db,一個是logs,這兩個文件夾是咱們本身建立的,db文件夾的做用是存放數據庫目錄,logs文件夾的做用是存放mongoDB的操做日誌信息,命令以下(此命令的執行在軟件包解壓重命名以後跳轉到mongdb下面的執行):
    e.1 mkdir db
    e.3 mkdir logs
  f 添加完成以後,啓動mongoDB,驗證是否安裝成功,這裏指定的數據庫目錄選項爲mongodb下建立的db,命令以下,如圖所示,則提示啓動成功。
    f.1 ./bin/mongod --dbpath /usr/local/kencery/mongoDB/mongodb/db

    f.2 當執行命令的時候如上圖所示,咱們發現出現了錯誤,錯誤信息是:(Failed to obtain address information for hostname bogon: Temporary failure in name resolution(獲取不到地址對應的主機名)),這是由於mongoDB啓動須要解析hosts,因此咱們打開hosts給本地IP配置主機名bogon,命令以下:
      (1) vim /etc/hosts,打開編輯器以後,將(127.0.0.1   bogon)這段命令放置在編輯器最後,保存而且關閉
      (2) 從新啓動mongoDB,發現錯誤已經消失,而且mogodb已經啓動。
  g 驗證mongoDB是否啓動,輸入命令lsof -i :27017,監測端口已經在使用中,因此說啓動已經完成。

4.MongoDB配置

  a 經過上面的MongoDB安裝,咱們已經將其安裝成功而且啓動,可是發現啓動太過於麻煩,因此須要咱們本身給MongoDB配置配置文件,因MongoDB開發者沒有配置樣例,因此須要咱們本身去建立而且寫入內容
  b 首先咱們在mongoDB解壓以後的包裏面進行操做,執行如下命令,打開編輯器。
    b.1 vim bin/mongodb.conf
  c 打開編輯器以後將以下圖所示的內容寫入到編輯器中,保證是正確的,若是你的安裝地址和個人不一致,則須要本身修改路徑,編輯完成以後保存。
    
  d MongDB請命令參數說明:http://blog.csdn.net/fdipzone/article/details/7442162
  e 使用以下命令從新啓動mongoDB,看是否配置文件起做用,命令以下
    e.1 ./bin/mongod --config /usr/local/kencery/mongoDB/mongodb/bin/mongodb.conf 
    

  f 驗證mongoDB是否啓動,輸入命令lsof -i :27017,監測端口已經在使用中,因此說啓動已經完成。

5.MongoDB設置爲系統服務而且設置開機啓動

  a 經過上面簡單的操做,咱們已經將MongoDB配置文件配置完成,那麼接下里咱們將爲MongoDB設置系統服務。
  b.首先添加MongoDB系統服務,命令以下:vim /etc/rc.d/init.d/mongod
  c 打開編輯器後,咱們將下面的配置粘貼進去,而後保存
 1         ulimit -SHn 655350
 2         #!/bin/sh
 3         # chkconfig: - 64 36
 4         # description:mongod
 5         case $1 in
 6         start)
 7         /usr/local/kencery/mongoDB/mongodb/bin/mongod  --maxConns 20000  --config /usr/local/kencery/mongoDB/mongodb/bin/mongodb.conf
 8         ;;
 9  
10         stop)
11         /usr/local/kencery/mongoDB/mongodb/bin/mongo 127.0.0.1:27017/admin --eval "db.shutdownServer()"
12         ;;
13  
14         status)
15         /usr/local/kencery/mongoDB/mongodb/bin/mongo 127.0.0.1:27017/admin --eval "db.stats()"
16         ;;
17         esac
  d 保存完成以後,添加腳本執行權限,命令以下:chmod +x /etc/rc.d/init.d/mongod 
  e 啓動MongoDB,以下圖所示,則說明啓動成功
    

  f 可使用命令service mongod stop關閉MongoDB服務。
  g 將此服務設置爲開機啓動,命令以下:chkconfig mongod on,而後從新啓動機器進行測試,發現開機服務應啓動而且端口也在使用中。
  h 驗證mongoDB是否啓動,輸入命令lsof -i :27017,監測端口已經在使用中,因此說啓動已經完成。

6.MongoDB設置遠程服務(建議只在內網或者不可設置,不安全係數過高)

  a 若是你的MongoDB運行端口使用默認的27017,你可使用端口號爲28017來訪問用戶界面,這是由於MongoDB的Web界面訪問端口比服務的端口多1000
  b 設置遠程訪問,既開放端口27017,28017
  c 首先編輯iptables文件,打開編輯器,命令以下( vim /etc/sysconfig/iptable),輸入以下信息在編輯器的最後,最後保存。
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 27017  -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 28017 -j ACCEPT
  d 重啓防火牆服務,命令以下: service iptables restart
  e.最後經過瀏覽器訪問MongDB的web頁面,如圖所示:則說明配置已經成功。
  
  f.由於經過遠程服務訪問不安全,因此咱們正常是不須要配置這步的,可是若是配置了以後,咱們能夠經過配置文件的屬性阻止其外部訪問
    f.1 打開mongodb.config文件,將#rest=true屬性註釋以後,關閉保存。
    f.2 關閉而且重啓mongoDB,而後在外面使用瀏覽器訪問發現已經訪問不了。

  天天一點點都是進步linux

 
 

    若是文章哪裏存在問題,歡迎你們指出來,我會在第一時間修改。web

相關文章
相關標籤/搜索