Mongodb带验证的主从复制架构
先說幾個關于mongodb的使用命令:
????1.創建用戶????db.addUser('username','password');
????2.查詢當前庫中用戶信息 ?db,system.users.find();?
????3.進入響應數據庫????use databaseName;
????4.顯示當前數據庫所有庫的大小信息 show dbs;
????5.顯示當前庫的所有表信息 show collections;
????6.對數據進行用戶驗證 db.auth('username','password');
????7.創建表?db.createCollection('test');
????8.關閉數據的時候不要使用kill -9 的方式進行關閉數據庫,這樣會導致數據的破壞,關閉方法有兩種,如下:
方法一:
| 1 2 3 4 | #進入admin數據庫 use?admin; #執行關閉數據庫命令 db.shutdownServer(); |
方法二:
| 1 2 3 4 | #過濾出進程ID netstat?-ntpl?|?grep?port #使用-15的方式進行殺掉進程 kill?-15?ID |
講一個話外題,不感興趣的同學可以略過,直接next了
????比如你創建了一個用戶,權限只能看test庫,當你使用mongodb mv管理軟件且使用管理員的帳號連接上后,你會神奇的發現帳號test庫并不顯示,原因在于此數據庫中沒有任何的數據,當你使用第七條命令創建了一個表后,神奇的事情發生了,test這個數據庫出現了
回歸正題
????關于mongodb的主從復制
????? ? ?不帶賬戶驗證的主從復制
????? ??????? ? 此種方案非常好理解,且操作簡單,但是使用起來不安全。操作步驟大概如下:
??????????????????系統環境介紹:Ubuntu 12.04.1 、MongoDB shell version: 2.6.1
???????????????????? 啟動的時候 只需要指定master和slave就可以了如下:
?????????????????????? ?
| 1 | mongod?--dbpath=/usr/local/mongodb/data/mongodb_27017/?--fork?--logpath=/var/log/mongod.log?--port?27017?--master |
| 1 | mongod?--dbpath=/usr/local/mongodb/data/mongodb_27018/?--fork?--logpath=/var/log/mongod27018.log?--port?27018?--slave?--source=127.0.0.1:2701 |
?????????帶賬戶驗證的主從復制
?????????????????此種方案就有點麻煩了,mongodb的官方文檔注明了,需要使用一個keyfile的關鍵字進行數據同步,僅僅是喲過--auth是不行的。操作步驟大概如下:
????????????????????????系統環境介紹:Ubuntu 12.04.1 、MongoDB shell version: 2.6.1
?????????????????????????????步驟一、首先要進入admin庫設置一個admin的賬號,此賬號為管理員帳號,對所有庫都具有增刪改查的權限,操作步驟如下:
| 1 2 3 | mongo?--host?=?127.0.0.1:27017 use?admin; db.addUser('admin','admin'); |
????????????????????????????步驟二、停掉現有的mongodb,然后使用如下參數啟動,測試admin賬戶是否正確
| 1 2 3 4 | mongod?--dbpath=/usr/local/mongodb/data/mongodb_27017/?--fork?--logpath=/var/log/mongod.log?--port?27017?--auth mongo?--host?=?127.0.0.1:27017 use?admin; db.auth('admin','admin'); |
????????????????????????????步驟三、在slave上同樣的操作步驟,進行設置slave的admin帳號并驗證(切記如果主從在同一臺機器上不要,使用了同一個端口,)
????????????????????????????步驟四、停到主從,然后生成key文件。步驟如下:
| 1 | openssl?rand?-base64?741?>?/root/mongo-keyfile |
?會在root的宿主目錄下生成一個文件mongo-keyfile文件 ll一下,看一下此文件大小,我第一次生成的時候文件大小為0,導致啟動的時候失敗
????????????????????????????第五步、啟動主從兩個mongo。步驟如下
| 1 2 | mongod?--dbpath=/usr/local/mongodb/data/mongodb_27017/?--fork?--logpath=/var/log/mongod.log?--port?27017?--auth?--master?--keyFile?/root/mongo-keyfile? mongod?--dbpath=/usr/local/mongodb/data/mongodb_27018/?--fork?--logpath=/var/log/mongod27018.log?--port?27018?--slave?--source=127.0.0.1:27017?--auth?--keyFile?/root/mongo-keyfile |
這樣當操作主的時候 從自然也會跟著變化了
關于mongodb的賬號設置管理與非管理員設置
????????????? ?上面已經闡述了關于創建 “管理員”賬號的操作方法,此處不就在闡述,如下內容闡述如何????????創建普通用戶權限
創建logdb庫的普通用戶,這個用戶只可以操作本數據庫,代碼如下
| 1 2 3 4 5 6 | #創建一個可讀寫賬戶 use?logdb; db.addUser('username','password'); #創建一個只讀賬戶 use?logdb; db.addUser('username','password',true) |
本文轉自 xinsir999 51CTO博客,原文鏈接:http://blog.51cto.com/xinsir/1732416,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的Mongodb带验证的主从复制架构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: flypods值得买吗
- 下一篇: powerdesigner奇淫技