Linux下MongoDB 安裝配置詳解

來源:互聯網
上載者:User

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,然後在外面使用瀏覽器訪問發現已經訪問不了。

更多MongoDB相關教程見以下內容:

CentOS 編譯安裝 MongoDB與mongoDB的php擴充

CentOS 6 使用 yum 安裝MongoDB及伺服器端配置

Ubuntu 13.04下安裝MongoDB2.4.3

MongoDB入門必讀(概念與實戰並重)

Ubunu 14.04下MongoDB的安裝指南

《MongoDB 權威指南》(MongoDB: The Definitive Guide)英文文字版[PDF]

Nagios監控MongoDB分區叢集服務實戰

基於CentOS 6.5作業系統搭建MongoDB服務

MongoDB 的詳細介紹:請點這裡
MongoDB 的:請點這裡

本文永久更新連結地址:

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.