日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Mongodb带验证的主从复制架构

發布時間:2023/12/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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带验证的主从复制架构的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。