MongoDB安裝部署(一)

來源:互聯網
上載者:User

標籤:

 

前言

MongoDB是一個由C++語言編寫的基於分布式檔案儲存體的資料庫,是當前NoSQL資料庫中比較熱門的一種,旨在為Web應用提供可擴充的高效能資料儲存解決方案。

 

MongoDB

簡介

MongoDB是一個介於關聯式資料庫和非關聯式資料庫之間的產品,是非關聯式資料庫當中功能最豐富,最像關聯式資料庫的。支援的資料結構非常鬆散,因此可以儲存比較複雜的資料類型。最大的特點是其支援的查詢語言非常強大,其文法有點類似於物件導向的查詢語言,幾乎可以實作類別似關聯式資料庫單表查詢的絕大部分功能,而且還支援對資料建立索引。

 

特點及功能特性

特點:高效能、易部署、易使用,儲存資料非常方便

主要功能特性有:

面向集合儲存,易儲存物件類型的資料

模式自由

支援動態查詢

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

支援查詢

支援複製和故障恢複

使用高效的位元據儲存,包括大型物件(如視頻等)

自動處理片段,以支援雲端運算層次的擴充性

支援Ruby,Python,Java,C++,PHP等多種語言

檔案儲存體格式為Bson(一種Json的擴充)

可通過網路訪問

 

優缺點

與非關係型資料庫相比,MongoDB的優點:

弱一致性(最終一致),更能保證使用者的訪問速度

文檔結構的儲存方式,能夠更便捷的擷取資料

內建GridFS,支援大容量的儲存

內建Sharding

第三方支援豐富(這是與其他的NoSQL相比,MongoDB也具有的優勢)

效能優越

與非關係型資料庫相比,MongoDB的缺點:

不支援事務操作

佔用空間過大

沒有成熟的維護工具

 

MongoDB安裝

1.下載mongodb

wget http://downloads.mongodb.org/linux/mongodb-linux-x86_64-3.2.1.tgz

 

2.解壓縮tar檔案

tar zxf mongodb-linux-x86_64-3.2.1.tgzmv mongodb-linux-x86_64-3.2.1/ /usr/local/mongodb-3.2

  

3. 建立資料檔案和記錄檔

mkdir -p /usr/local/mongodb-3.2/datamkdir /usr/local/mongodb-3.2/logstouch /usr/local/mongodb-3.2/logs/mongod.log

 

4.在安裝mongodb的使用者下添加如下環境變數,以便直接使用mongodb bin目錄下的命令

export PATH=$PATH:/usr/local/mongodb-3.2/bin/

 

5.啟動mongodb

mongod --dbpath=/usr/local/mongodb-3.2/data --logpath=/usr/local/mongodb-3.2/logs/mongod.log --logappend  --port=27017&

 

6.檢查連接埠是否啟動,連接埠為:27017

netstat -nlp | grep 27017tcp        0      0 0.0.0.0:27017               0.0.0.0:*                   LISTEN      1897/mongod         unix  2      [ ACC ]     STREAM     LISTENING     11098  1897/mongod         /tmp/mongodb-27017.sock

啟動成功。

 

7.串連資料庫

# mongo> use test

 

8.設定mongodb自動啟動(無許可權)
將如下命令添加到 /etc/rc.local

mongod --dbpath=/usr/local/mongodb-3.2/data --logpath=/usr/local/mongodb-3.2/logs/mongod.log --logappend  --port=27017&

 

9.設定mongodb自動啟動(有許可權)
將如下命令添加到 /etc/rc.local

mongod --dbpath=/usr/local/mongodb-3.2/data --logpath=/usr/local/mongodb-3.2/logs/mongod.log --logappend  --port=27017& -auth

 

10.添加使用者

> use test     //不存在會自動建立> db.createUser({user:"admin",pwd:"123456",roles:[{role:‘dbOwner‘,db:‘userdb‘}]})> use admin    //切換到 admin 庫下> db.system.users.find()  //查看有哪些使用者

 

MongoDB串連和使用者管理

1)串連MongoDB:

1:在本機可以直接運行命令mongo進入到MongoDB shell中

2:如果MongoDB監聽連接埠並不是預設的27017,則在串連的時候需要加 --port選項,例如

mongo --port 27018

 

3:串連遠程mongodb,需要加--host,例如

mongo --host 127.0.0.1

 

4:如果設定了驗證,則在串連的時候需要帶使用者名稱和密碼

 mongo -uusername -ppasswd    //這個和MySQL挺像

 

 

2)MongoDB使用者管理

1:首先mongodb使用者是針對庫來的,建立使用者時要先進入到對應的庫裡

2:use test //切換到test庫下

3:db.createUser({user:"admin",pwd:"123456",roles:[{role:‘dbOwner‘,db:‘userdb‘}]})

4:use admin //切換到admin庫

5:db.system.users.find() // 列出所有使用者,需要切換到admin庫

6:show users //查看當前庫下所有的使用者

7:db.dropUser(‘admin‘) //刪除使用者

8:關於使用者角色,參考文檔http://bbs.51cto.com/thread-1146654-1.html

3)資料庫管理
#查看版本
db.version()
#顯示當前的庫   db
# 切換/建立庫
use userdb  //如果庫存在就切換,不存在就建立
#此時show dbs 看不到userdb,需要我們建立一個集合
db.createCollection(‘clo1‘)
再show dbs就有userdb了。
#查看所有資料庫  
show dbs
#刪除資料庫 mydb
use mydb  //先切換到該庫下,然後再刪除
db.dropDatabase()

4)資料管理
建立集合

db.createCollection("mycol", { capped : true, autoIndexID : true, size : 6142800, max : 10000 } )

 

文法:db.createCollection(name,options)
name就是集合的名字,options可選,用來配置集合的參數,參數如下
capped true/false (可選)如果為true,則啟用封頂集合。封頂集合是固定大小的集合,會自動覆蓋最早的條目,當它達到其最大大小。如果指定true,則需要也指定尺寸參數。
autoindexID  true/false (可選)如果為true,自動建立索引_id欄位的預設值是false。
size (可選)指定最大大小位元組封頂集合。如果封頂如果是 true,那麼你還需要指定這個欄位。單位B
max (可選)指定封頂集合允許在檔案的最大數量。

查看集合

show collections

在集合中添加文檔

db.Account.insert({AccountID:2,UserName:"123",password:"123456"})  //如果集合不存在,直接插入資料,則mongodb會自動建立集合修改db.Account.update({AccountID:2},{"$set":{"Age":20}})

 

查看

db.Account.find()   //查看所有文檔db.Account.find({AccountID:2})   //根據條件查詢刪除db.Account.remove({AccountID:2})  //根據條件刪除要刪除整個文檔db.Account.drop()查看集合的狀態use dbname  //先進入對應的庫,然後查看集合狀態db.printCollectionStats()

 

5)資料庫效能

db.stats()  //查看當前庫的資訊db.serverStatus()   //查看mongodb伺服器的狀態

 

MongoDB安裝部署(一)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.