在Ubuntu 14.04 64bit上安装MongoDB并测试
生活随笔
收集整理的這篇文章主要介紹了
在Ubuntu 14.04 64bit上安装MongoDB并测试
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
臨時需要使用python來操作mongoDB, 網上搜索發現很多文檔都已經非常陳舊了, 并不符合目前3.0版本的安裝配置, 特此自己整理一下, 以作備忘.
MongoDB簡介
MongoDB(http://www.mongodb.org/)是一個高性能,開源(代震軍大牛正在研究MongoDB的源碼,大家可以去看看http://www.cnblogs.com/daizhj/),模式自由(schema-free)的文檔型數據庫,它在許多場景下可用于替代傳統的關系型數據庫或鍵/值(key-value)存儲方式。MongoDB使用C++開發,
具有以下特性:
面向集合的存儲:適合存儲對象及JSON形式的數據。
動態查詢:MongoDB支持豐富的查詢表達式。查詢指令使用JSON形式的標記,可輕易查詢文檔中內嵌的對象及數組。
完整的索引支持:包括文檔內嵌對象及數組。MongoDB的查詢優化器會分析查詢表達式,并生成一個高效的查詢計劃。
查詢監視:MongoDB包含一個監視工具用于分析數據庫操作的性能。
復制及自動故障轉移:MongoDB數據庫支持服務器之間的數據復制,支持主-從模式及服務器之間的相互復制。復制的主要目標是提供冗余及自動故障轉移。
高效的傳統存儲方式:支持二進制數據及大型對象(如照片或圖片)。
自動分片以支持云級別的伸縮性(處于早期alpha階段):自動分片功能支持水平的數據庫集群,可動態添加額外的機器。
模式自由(schema-free),意味著對于存儲在MongoDB數據庫中的文件,我們不需要知道它的任何結構定義。如果需要的話,你完全可以把不同結構的文件存儲在同一個數據庫里。
支持Python,PHP,Ruby,Java,C,C#,Javascript,Perl及C++語言的驅動程序,社區中也提供了對Erlang及.NET等平臺的驅動程序。
使用場合:
網站數據:MongoDB非常適合實時的插入,更新與查詢,并具備網站實時數據存儲所需的復制及高度伸縮性。
緩存:由于性能很高,MongoDB也適合作為信息基礎設施的緩存層。在系統重啟之后,由MongoDB搭建的持久化緩存層可以避免下層的數據源過載。
大尺寸,低價值的數據:使用傳統的關系型數據庫存儲一些數據時可能會比較昂貴,在此之前,很多時候程序員往往會選擇傳統的文件進行存儲。
高伸縮性的場景:MongoDB非常適合由數十或數百臺服務器組成的數據庫。MongoDB的路線圖中已經包含對MapReduce引擎的內置支持。
用于對象及JSON數據的存儲:MongoDB的BSON數據格式非常適合文檔化格式的存儲及查詢。
所謂“面向集合”(Collenction-Orented),意思是數據被分組存儲在數據集中,被稱為一個集合(Collenction)。每個集合在數據庫中都有一個唯一的標識名,并且可以包含無限數目的文檔。集合的概念類似關系型數據庫(RDBMS)里的表(table),不同的是它不需要定義任何模式(schema)。
下面按照MongoDB官網的提示來采用.deb包的方式安裝MongoDB,雖然Ubuntu 14.04在自己的repository中包含了它自己的MongoDB包, 但是我們采用官方.deb包的方式安裝通常會更新.這個deb包中包含如下packages:
mongodb-org? metapackage, 會自動安裝下面的4個components packages
mongodb-org-server??? mongod daemon和相關的配置,初始化腳本,其中/etc/init.d/mongod可用來stop, start, and restart daemon processes
mongodb-org-mongos??? mongos daemon
mongodb-org-shell???? mongo shell
mongodb-org-tools???? MongoDB tools: mongoimport bsondump, mongodump, mongoexport, mongofiles, mongooplog, mongoperf, mongorestore, mongostat, and mongotop.
說明:
/var/lib/mongodb 存放data文件
/var/log/mongodb 存放日志文件
/etc/mongod.conf 配置文件
使用MongoDB的user account來運行它. 如若更改user,需要確保它對上面這兩個文件的訪問權限
安裝MongoDB
1.命令行導入MongoDB public GPG Key:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
2.生成MongoDB列表文件
echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list
3.重載本地包數據庫
sudo apt-get update
4.安裝最新穩定版MongoDB包
5.確認當前安裝的MongoDB版本
echo "mongodb-org hold" | sudo dpkg --set-selections
echo "mongodb-org-server hold" | sudo dpkg --set-selections
echo "mongodb-org-shell hold" | sudo dpkg --set-selections
echo "mongodb-org-mongos hold" | sudo dpkg --set-selections
echo "mongodb-org-tools hold" | sudo dpkg --set-selections
6.啟動/停止/重啟MongoDB
sudo service mongod start
sudo service mongod stop
sudo service mongod restart
查看狀態
sudo service mongod status
7.查看日志檢查MongoDB是否成功啟動
檢查日志文件/var/log/mongodb/mongod.log中是否有
[initandlisten] waiting for connections on port <port>
port默認為27017, 它在/etc/mongod.conf中配置
至此, MongoDB已經成功安裝, 下面開始使用它. mongod守護進程是database server, mongo shell可用視為client,我們通過它去與MongoDB交互.
8.連接mongod
mongo
在Ubuntu終端中輸入mongo, 它會默認尋找在localhost的27017端口上偵聽的database server, 如果不是這樣,可用使用--port和--host選項.使用exit來退出mongo環境.
9.選擇一個數據庫
當mongo連接上mongod后,它會默認使用test數據庫, 使用下面的operation來獲取相關信息:
help 顯示幫助信息
db? 查看當前連接的數據庫
show dbs 顯示所有數據庫列表
use mydb 切換到mydb數據庫
注意:對一個新命名的數據庫, MongoDB并不會立即被創建, 在show dbs中查看不了,除非你insert data into it
10.生成collection和插入documents
db
查看當前存在的數據庫, 要創建一個新的數據庫,使用下面的命令:
use mydb
使用js操作來生成兩個documents
j = { name : "mongo" }
k = { x : 3 }
將j,k插入testData collection中, 注意MongoDB使用dynamic schemas,在插入數據之前不需要事先聲明testData, 在用到它時會自動生成.
db.testData.insert( j )
db.testData.insert( k )
當插入第一個document時, mydb數據庫和testData集合都會自動生成.
11.驗證testData collection是否存在
show collections
驗證testData中是否存在documents
db.testData.find()
將會返回
{ "_id" : ObjectId("4c2209f9f3924d31102bd84a"), "name" : "mongo" }
{ "_id" : ObjectId("4c2209fef3924d31102bd84b"), "x" : 3 }
12.退出mongo shell
exit
或者直接按Ctrl+C中斷退出
13.設置其他客戶端連接
默認安裝的話, 只允許127.0.0.1的IP連接, 需要修改/etc/mongodb.conf,
sudo vim /etc/mongodb.conf
注釋掉記錄
[1].http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/
[2].http://docs.mongodb.org/manual/tutorial/getting-started/
[3].http://www.cnblogs.com/xiaogangqq123/archive/2011/05/16/2029426.html
MongoDB簡介
MongoDB(http://www.mongodb.org/)是一個高性能,開源(代震軍大牛正在研究MongoDB的源碼,大家可以去看看http://www.cnblogs.com/daizhj/),模式自由(schema-free)的文檔型數據庫,它在許多場景下可用于替代傳統的關系型數據庫或鍵/值(key-value)存儲方式。MongoDB使用C++開發,
具有以下特性:
面向集合的存儲:適合存儲對象及JSON形式的數據。
動態查詢:MongoDB支持豐富的查詢表達式。查詢指令使用JSON形式的標記,可輕易查詢文檔中內嵌的對象及數組。
完整的索引支持:包括文檔內嵌對象及數組。MongoDB的查詢優化器會分析查詢表達式,并生成一個高效的查詢計劃。
查詢監視:MongoDB包含一個監視工具用于分析數據庫操作的性能。
復制及自動故障轉移:MongoDB數據庫支持服務器之間的數據復制,支持主-從模式及服務器之間的相互復制。復制的主要目標是提供冗余及自動故障轉移。
高效的傳統存儲方式:支持二進制數據及大型對象(如照片或圖片)。
自動分片以支持云級別的伸縮性(處于早期alpha階段):自動分片功能支持水平的數據庫集群,可動態添加額外的機器。
模式自由(schema-free),意味著對于存儲在MongoDB數據庫中的文件,我們不需要知道它的任何結構定義。如果需要的話,你完全可以把不同結構的文件存儲在同一個數據庫里。
支持Python,PHP,Ruby,Java,C,C#,Javascript,Perl及C++語言的驅動程序,社區中也提供了對Erlang及.NET等平臺的驅動程序。
使用場合:
網站數據:MongoDB非常適合實時的插入,更新與查詢,并具備網站實時數據存儲所需的復制及高度伸縮性。
緩存:由于性能很高,MongoDB也適合作為信息基礎設施的緩存層。在系統重啟之后,由MongoDB搭建的持久化緩存層可以避免下層的數據源過載。
大尺寸,低價值的數據:使用傳統的關系型數據庫存儲一些數據時可能會比較昂貴,在此之前,很多時候程序員往往會選擇傳統的文件進行存儲。
高伸縮性的場景:MongoDB非常適合由數十或數百臺服務器組成的數據庫。MongoDB的路線圖中已經包含對MapReduce引擎的內置支持。
用于對象及JSON數據的存儲:MongoDB的BSON數據格式非常適合文檔化格式的存儲及查詢。
所謂“面向集合”(Collenction-Orented),意思是數據被分組存儲在數據集中,被稱為一個集合(Collenction)。每個集合在數據庫中都有一個唯一的標識名,并且可以包含無限數目的文檔。集合的概念類似關系型數據庫(RDBMS)里的表(table),不同的是它不需要定義任何模式(schema)。
下面按照MongoDB官網的提示來采用.deb包的方式安裝MongoDB,雖然Ubuntu 14.04在自己的repository中包含了它自己的MongoDB包, 但是我們采用官方.deb包的方式安裝通常會更新.這個deb包中包含如下packages:
mongodb-org? metapackage, 會自動安裝下面的4個components packages
mongodb-org-server??? mongod daemon和相關的配置,初始化腳本,其中/etc/init.d/mongod可用來stop, start, and restart daemon processes
mongodb-org-mongos??? mongos daemon
mongodb-org-shell???? mongo shell
mongodb-org-tools???? MongoDB tools: mongoimport bsondump, mongodump, mongoexport, mongofiles, mongooplog, mongoperf, mongorestore, mongostat, and mongotop.
說明:
/var/lib/mongodb 存放data文件
/var/log/mongodb 存放日志文件
/etc/mongod.conf 配置文件
使用MongoDB的user account來運行它. 如若更改user,需要確保它對上面這兩個文件的訪問權限
安裝MongoDB
1.命令行導入MongoDB public GPG Key:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
2.生成MongoDB列表文件
echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list
3.重載本地包數據庫
sudo apt-get update
4.安裝最新穩定版MongoDB包
sudo apt-get install -y mongodb-org
5.確認當前安裝的MongoDB版本
echo "mongodb-org hold" | sudo dpkg --set-selections
echo "mongodb-org-server hold" | sudo dpkg --set-selections
echo "mongodb-org-shell hold" | sudo dpkg --set-selections
echo "mongodb-org-mongos hold" | sudo dpkg --set-selections
echo "mongodb-org-tools hold" | sudo dpkg --set-selections
6.啟動/停止/重啟MongoDB
sudo service mongod start
sudo service mongod stop
sudo service mongod restart
查看狀態
sudo service mongod status
7.查看日志檢查MongoDB是否成功啟動
檢查日志文件/var/log/mongodb/mongod.log中是否有
[initandlisten] waiting for connections on port <port>
port默認為27017, 它在/etc/mongod.conf中配置
至此, MongoDB已經成功安裝, 下面開始使用它. mongod守護進程是database server, mongo shell可用視為client,我們通過它去與MongoDB交互.
8.連接mongod
mongo
在Ubuntu終端中輸入mongo, 它會默認尋找在localhost的27017端口上偵聽的database server, 如果不是這樣,可用使用--port和--host選項.使用exit來退出mongo環境.
9.選擇一個數據庫
當mongo連接上mongod后,它會默認使用test數據庫, 使用下面的operation來獲取相關信息:
help 顯示幫助信息
db? 查看當前連接的數據庫
show dbs 顯示所有數據庫列表
use mydb 切換到mydb數據庫
注意:對一個新命名的數據庫, MongoDB并不會立即被創建, 在show dbs中查看不了,除非你insert data into it
10.生成collection和插入documents
db
查看當前存在的數據庫, 要創建一個新的數據庫,使用下面的命令:
use mydb
使用js操作來生成兩個documents
j = { name : "mongo" }
k = { x : 3 }
將j,k插入testData collection中, 注意MongoDB使用dynamic schemas,在插入數據之前不需要事先聲明testData, 在用到它時會自動生成.
db.testData.insert( j )
db.testData.insert( k )
當插入第一個document時, mydb數據庫和testData集合都會自動生成.
11.驗證testData collection是否存在
show collections
驗證testData中是否存在documents
db.testData.find()
將會返回
{ "_id" : ObjectId("4c2209f9f3924d31102bd84a"), "name" : "mongo" }
{ "_id" : ObjectId("4c2209fef3924d31102bd84b"), "x" : 3 }
12.退出mongo shell
exit
或者直接按Ctrl+C中斷退出
13.設置其他客戶端連接
默認安裝的話, 只允許127.0.0.1的IP連接, 需要修改/etc/mongodb.conf,
sudo vim /etc/mongodb.conf
注釋掉記錄
#bind_ip = 127.0.0.1
[1].http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/
[2].http://docs.mongodb.org/manual/tutorial/getting-started/
[3].http://www.cnblogs.com/xiaogangqq123/archive/2011/05/16/2029426.html
總結
以上是生活随笔為你收集整理的在Ubuntu 14.04 64bit上安装MongoDB并测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ATS缓存中间层介绍
- 下一篇: 在Ubuntu 14.04 64bit上