mongodb 常用命令

來源:互聯網
上載者:User

標籤:mongodb

http://blog.csdn.net/luonanqin/article/details/8497860  Mongodb叢集搭建的三種方式


NoSQL = Not Only SQL  mongodb儲存方式是文檔式儲存,並不是Key-Value形式。


Mongodb的三種叢集方式的搭建:Replica Set / Sharding / Master-Slaver


Replica Set 複本集叢集原理:(最簡單的叢集方式)

主節點,備節點,仲裁節點。主備節點儲存資料,仲裁節點不儲存資料。

用戶端同時串連主節點與備節點,不串連仲裁節點。


預設設定下,主節點提供所有增刪查改服務,備節點不提供任何服務。但是可以通過設定使備節點提供查詢服務,這樣就可以減少主節點的壓力,當用戶端進行資料查詢時,請求自動轉到備節點上。這個設定叫做Read Preference Modes,同時Java用戶端提供了簡單的配置方式,可以不必直接對資料庫進行操作。


仲裁節點是一種特殊的節點,它本身並不儲存資料,主要的作用是決定哪一個備節點在主節點掛掉之後提升為主節點,所以用戶端不需要串連此節點。這裡雖然只有一個備節點,但是仍然需要一個仲裁節點來提升備節點層級。


測試:一個是往主節點插入資料,能從備節點查到之前插入的資料(查詢備節點可能會遇到某個問題,可以自己去網上查查看)。二是停掉主節點,備節點能變成主節點提供服務。三是恢複主節點,備節點也能恢複其備的角色,而不是繼續充當主的角色。二和三都可以通過rs.status()命令即時查看叢集的變化。



Sharding 分區叢集:

和Replica Set類似,都需要一個仲裁節點,但是Sharding還需要配置節點和路由節點。就三種叢集搭建方式來說,這種是最複雜的。


Master-Slaver 主備方式

官方已經不推薦這種方式,搭建方式也相對簡單。


用過的人應該知道mongodb吃記憶體的問題,解決辦法只能通過ulimit來控制記憶體使用量量,但是如果控制不好的話,mongodb會掛掉。



mongodb的安裝

執行指令碼 install_mongodb_20160510.sh  即可安裝mongodb服務。詳細請看redme


mongodb叢集的安裝


常用命令

mongodb的啟動

/opt/server/mongodb/bin/mongod -f /opt/server/mongodb/mongodb.conf


mongodb的停止

kill -15 pid

pkill mongod


mongodb登入方式

/opt/server/mongodb/bin/mongo 192.168.1.200:27017


查看狀態

rs.status()


刪除節點:

rs.remove("mongodb13.kk.net:27019")  #可以刪除節點


添加節點:

rs.addArb("mongodb13.kk.net:27019")  #可以添加節點,但這樣添加的節點為仲裁


mongodb複本集如何添加一個節點使其成為備節點呢?

在主節點上操作

use admin

cfg={ _id:"wlb", members:[ {_id:0,host:‘192.168.11.215:27017‘,priority:2}, {_id:1,host:‘192.168.11.187:27017‘,priority:1},{_id:2,host:‘192.168.11.25:27017‘,arbiterOnly:true}] };

rs.reconfig(cfg);  #使配置生效

rs.status()



查看所有資料庫

show dbs


MongoDB 建立資料庫

use znx 

db

show dbs   #會發現建立的資料庫不在列表中,要想顯示需要插入資料


備節點若想查看資料庫,需要執行如下命令,否則報13435錯誤

rs.slaveOk(true)



插入資料

db.znx.insert({"name":"dengyong"})

show dbs     #會顯示出znx資料庫,備節點也會顯示


查看全部資料表

show collections 


查看全部表記錄

db.znx.find()



備節點查看資料,先執行如下命令,否則會報錯

rs.slaveOk(true)


MongoDB 刪除資料庫

use znx

db.dropDatabase()   #執行刪除命令

show dbs            #znx資料庫已刪除



參考連結:http://blog.csdn.net/chen88358323/article/details/50206651

mongodb建立使用者

use admin

db.createUser({user:"wjs",pwd:"wjs",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})   #建立使用者



內建角色:

    1. 資料庫使用者角色:read、readWrite;

    2. 資料庫管理角色:dbAdmin、dbOwner、userAdmin;

    3. 叢集管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;

    4. 備份恢複角色:backup、restore;

    5. 所有資料庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase

    6. 超級使用者角色:root  

    // 這裡還有幾個角色間接或直接提供了系統超級使用者的訪問(dbOwner 、userAdmin、userAdminAnyDatabase)

    7. 內部角色:__system

    

具體角色:

Read:允許使用者讀取指定資料庫

readWrite:允許使用者讀寫指定資料庫

dbAdmin:允許使用者在指定資料庫中執行管理函數,如索引建立、刪除,查看統計或訪問system.profile

userAdmin:允許使用者向system.users集合寫入,可以找指定資料庫裡建立、刪除和系統管理使用者

clusterAdmin:只在admin資料庫中可用,賦予使用者所有分區和複製集相關函數的系統管理權限。

readAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的讀許可權

readWriteAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的讀寫權限

userAdminAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的userAdmin許可權

dbAdminAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的dbAdmin許可權。

root:只在admin資料庫中可用。超級帳號,超級許可權


db.system.users.find()    #查看使用者

show users 



建立一個資料庫znx

use znx

建立一個普通使用者wxc

db.createUser({user:"wxc",pwd:"wxc",roles:[{role:"readWrite",db:"znx"}]}) 


本文出自 “青春鄧勇” 部落格,請務必保留此出處http://dengyong.blog.51cto.com/8409869/1772863

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.