程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MongoDB數據庫 >> MongoDB綜合知識 >> MongoDB學習筆記—Linux下搭建MongoDB環境

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

編輯: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/

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://www.jb51.net/article/56898.htm

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 打開編輯器後,我們將下面的配置粘貼進去,然後保存

ulimit -SHn 655350
  #!/bin/sh
  # chkconfig: - 64 36
  # description:mongod
  case $1 in
  start)
  /usr/local/kencery/mongoDB/mongodb/bin/mongod --maxConns 20000 --config /usr/local/kencery/mongoDB/mongodb/bin/mongodb.conf
  ;;
 
  stop)
  /usr/local/kencery/mongoDB/mongodb/bin/mongo 127.0.0.1:27017/admin --eval "db.shutdownServer()"
  ;;
 
  status)
  /usr/local/kencery/mongoDB/mongodb/bin/mongo 127.0.0.1:27017/admin --eval "db.stats()"
  ;;
  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,然後在外面使用浏覽器訪問發現已經訪問不了。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved