Mongodb安裝與配置詳解


簡介:

mongodb作為一款通用型數據庫,除了能夠創建,讀取,更新和刪除數據外,還提供一系列不斷擴展的獨特功能。

a.索引: mongodb支持二級索引,允許多種快速查詢,且提供和唯一索引,復合索引,地理空間索引,以及全文索引。

b.聚合: 用戶能夠通過簡單的片段創建復雜的聚合,並通過數據庫自動優化。

c.特殊的集合類型: 支持存在時間有限的集合,適用於那些將在某個時刻過期的數據,如會話,也支持固定大小的集合,適用於保存近期數據,如日志 。

d.文件存儲: 支持一種非常易用的協議,用於存儲大文件和文件元數據。 mongodb並不具備一些在關系型數據庫中的普遍功能,如連接和復雜的多行事務。省略這些功能是出於架構上的考慮,為了得到更好的擴展性, 因為在分布式系統中,這兩個功能難以高效的實現。

 

 

MongoDB的一個主要目標是提供卓越的性能,MongoDB能對文檔進行動態的填充,也能預分配是護具文件以利用額外的空間來換取 穩定的性能。MongoDB把盡可能多的內存用作緩存,試圖為每次的查詢選擇正確的索引。

注: 1.不能含有空字符(\0),這個字符表示鍵的結尾。

2.$和.具有特殊的意義,只能在特定的環境下使用。

3.區分大小寫。

4.文檔不能含有重復的鍵值。

 

集合里可以存放任何文檔,還有必要使用多個集合嗎?

1.在一個集合里查詢特定類型的文檔在速度上不是 很划算。

2.把同種類型的文檔放在一個集合里,數據會更加集中。

3.在一個集合中只放入一種類型的文檔,可以更有效的對集合進行索引。

4.方便開發者和管理者。

MongoDB中,多個文檔組成集合,多個集合組成數據庫。

 

 

 

安裝MongoDB:

1.創建mongo數據目錄:

mkdir /data/mongodb

2.准備yum源:

vi /etc/yum.repos.d/mongodb-org-3.2.repo

[mongodb-org-3.2]

name=MongoDB Repository

baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/

gpgcheck=1

enabled=1

gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc

3.安裝:

yum -y install mongodb-org

4.創建數據庫目錄和日志目錄:(數據庫目錄和日志目錄的權限所屬為mongod)

mkdir /data/mongodb/

 

 

# mongod.conf
 
# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/
 
# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log     #日志文件
 
# Where and how to store data.
storage:
  dbPath: /data/mongodb         #數據文件 
  journal:
    enabled: true
#  engine:
#  mmapv1:
#  wiredTiger:
 
# how the process runs
processManagement:
  fork: true  # fork and run in background
  pidFilePath: /var/run/mongodb/mongod.pid  # location of pidfile
 
# network interfaces
net:
  port: 27017               #默認監聽端口
  bindIp: 0.0.0.0  # Listen to local interface only, comment to listen on all interfaces.
 
 
security:                #mongo3.2+開啟認證方法
          authorization: enabled
 
#operationProfiling:
 
#replication:
 
#sharding:
 
## Enterprise-Only Options
 
#auditLog:
 
#snmp:

 

 

5.啟動mongodb服務:

service mongod start

 

[ps1]:mongodb非正常關閉時,再次啟動的異常處理:

a.正常關閉方法:service mongod stop--->service mongod start :不可以直接使用restart

b.非正常關閉以后需要刪除mongodb.lock和mongod.log文件

c.刪除文件以后,使用repair參數進行恢復:mongod --repair

d.恢復文件以后進行重啟服務

e. 服務重啟的時候要確保dbpath所在文件夾為空       #

 

[ps2]:將mongodb的數據文件指定到相應目錄后,指定的目錄權限所屬的組應該為mongod !!!

 

[ps3]:mongodb3.0開啟認證: security: authorization: enabled

 

 

6.連接數據庫:

cd /usr/local/bin

./mongo

使用 --nodb,啟動時不連接到任何數據庫

conn = new Mongo("host:port")

db = conn.getDB("admin")

>show dbs #查看數據庫

>use admin

>db.createUser(

{

user:"admin",

pwd:"kasumi",

roles:[{role:"userAdminAnyDatabase",db:"admin"}]

}

)

>db.auth("admin","kasumi"); #返回值為1,則授權成功。

 

創建擁有root權限的數據庫用戶:

>db.createUser({

user:"root",

pwd:"kasumi",

role:[{role:"root",db:"admin"}]

}

)

 

>db.auth("root","kasumi")  

>exit

#使用擁有超級權限的用戶登錄,可以刪除創建的其他用戶。

 

db.createUser({user:"trader",pwd:"lean123",roles:[{role:"readWrite",db:"trader"}]});

 

 

內建的角色:

a.數據庫用戶角色:read,readWrite
b.數據庫管理角色:dbAdmin,dbOwner,userAdmin
c.集群管理角色:clusterAdmin,clusterManager,clusterMonitor,hostManager
d.數據恢復角色:backup,restore
e.所有數據庫角色:readAnyDatabase,readWriteAnyDatabase,userAdminAnyDatabase,dbAdminAnyDatabase
f.超級用戶角色:root
g.這里還有幾個角色間接或直接提供了系統太那個超級用戶的訪問:dbOwner,userAdmin,userAdminAnyDatabase
h.內部角色:__system
 
A.查看用戶:
>db.system.users.find()
 
B.刪除用戶:
>db.system.users.remove({user:"admin"})
 

 7.mongodb認證連接:

./mongo admin -uadmin -p #連接時需要指定連接的數據庫名稱

./mongo 192.168.0.83/admin -uadmin -p#遠程連接----指定服務器

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM