最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

聊聊MongoDB?帶訪問控制的副本集部署問題

 更新時間:2022年02月19日 09:07:53   作者:Uncle鍋  
這篇文章主要介紹了MongoDB?帶訪問控制的副本集部署,本文給大家分享簡單的步驟幫助大家完成,對MongoDB副本集部署問題感興趣的朋友一起看看吧

  當(dāng)你需要用到一個MongoDB 副本集集群,用于開發(fā)測試時, 可以通過下面的步驟簡單完成。

版本及環(huán)境 MongoDB4.4 Centos6.5

一、下載 MongoDB Server 及 MongoDB Shell

   MongoDB Server 提供數(shù)據(jù)庫服務(wù)。 Mongo Shell 可以理解為命令行的客戶端程序。

   下載地址:https://www.mongodb.com/try/download/community

   此處選擇對應(yīng)的,版本, 平臺,Package類型(server /shell)

    4.4.12 MongoDB Server:https://repo.mongodb.org/yum/redhat/6/mongodb-org/4.4/x86_64/RPMS/mongodb-org-server-4.4.12-1.el6.x86_64.rpm

MongoDB Shell:https://repo.mongodb.org/yum/redhat/6/mongodb-org/4.4/x86_64/RPMS/mongodb-org-shell-4.4.12-1.el6.x86_64.rpm

    RMP 安裝

rpm -ivh mongodb-org-server-4.4.12-1.el6.x86_64.rpm

rpm -ivh mongodb-org-shell-4.4.12-1.el6.x86_64.rpm

二、副本集初始化

副本集(replica set)是一組維護相同數(shù)據(jù)的mongod進程, 提供了高可用性。部分節(jié)點故障了,還可以自動選取主節(jié)點,繼續(xù)提供服務(wù)。

由于副本集的鏈接方式和單點有些區(qū)別,所以測試環(huán)境也按照副本集方式部署。

    

   MongoDB 手冊中關(guān)于副本集的部分在:https://docs.mongodb.com/v4.4/replication/

    1. 首先創(chuàng)建下數(shù)據(jù)庫數(shù)據(jù)存儲目錄,用于存儲數(shù)據(jù)。 環(huán)境是單機,三個節(jié)點的目錄,都是在一臺機器創(chuàng)建的,偽分布式。

mkdir -p /srv/mongodb/rs0-0  /srv/mongodb/rs0-1 /srv/mongodb/rs0-2 

    2. 依次啟動三個mongod實例

mongod --replSet rs0 --fork --logpath  /srv/mongodb/0 --logappend --port 27017 --bind_ip 0.0.0.0,:: --dbpath /srv/mongodb/rs0-0  --oplogSize 128
mongod --replSet rs0 --fork  --logpath  /srv/mongodb/1 --logappend --port 27018 --bind_ip 0.0.0.0,:: --dbpath /srv/mongodb/rs0-1  --oplogSize 128
mongod --replSet rs0 --fork  --logpath  /srv/mongodb/2 --logappend --port 27019 --bind_ip 0.0.0.0,:: --dbpath /srv/mongodb/rs0-2  --oplogSize 128

    啟動后, ps -axu |grep mongo 看一下 3個進程 mongod 是不是都o(jì)k。

    3.使用mongo shell 連接其中一個節(jié)點。進行副本集初始化。

mongo --port 27017

    進入shell后, 執(zhí)行如下命令。注意替換“10.13.50.40” 為實際IP

rsconf = {
  _id: "rs0",
  members: [
    {
     _id: 0,
     host: "10.13.50.40:27017"
    },
    {
     _id: 1,
     host: "10.13.50.40:27018"
    },
    {
     _id: 2,
     host: "10.13.50.40:27019"
    }
   ]
}
rs.initiate( rsconf )

    初始化完成后,可以通過

rs.conf()

    查看副本集配置。

    到這里3個節(jié)點的副本集已經(jīng)配置好了。可以連接進行讀寫操作了。

但目前連接是沒有訪問控制的, 下面來增加訪問控制。

三、增加訪問控制

    在副本集中啟用訪問控制,需要進行兩項配置。

    1. 副本集節(jié)點成員間的安全認(rèn)證,支持keyfiles 或者 x.509 證書 認(rèn)證。

2.副本集服務(wù)與數(shù)據(jù)庫連接客戶端間的安全認(rèn)證, 用戶名,密碼。權(quán)限基于用戶所屬角色。

    副本集節(jié)點間的內(nèi)部認(rèn)證, 這里使用keyfiles。 通俗說就是所有節(jié)點共享相同的keyfile 作為密碼。keyfile正確, 才能夠加入副本集,實現(xiàn)了副本集節(jié)點間的身份驗證?!?/p>

    創(chuàng)建一個keyfile, 復(fù)制三份,供3個節(jié)點使用。下面按官方手冊, 使用openssl 生成隨機密碼,修改權(quán)限為400. 復(fù)制到3個目錄備用。

openssl rand -base64 756 > key
chmod  400 key
mkdir -p  /srv/mongodb/k0 /srv/mongodb/k1   /srv/mongodb/k2
cp key /srv/mongodb/k0/
cp key /srv/mongodb/k1/
cp key /srv/mongodb/k2/

下面創(chuàng)建用戶,指定角色。 如前述,使用 mongo shell 連接數(shù)據(jù)庫。創(chuàng)建用戶需要在主節(jié)點進行。如果連接的節(jié)點不是當(dāng)前主節(jié)點??梢杂?rs.status(); 查看主節(jié)點ip端口后連接。進入mongo shell后, 輸入如下命令。

admin = db.getSiblingDB("admin")
admin.createUser(
  {
    user: "admin",
    pwd: "admin!@#$", 
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

    創(chuàng)建一個用戶名未 admin 角色為 userAdminAnyDatabase 的用戶, 密碼為 admin!@#$。 關(guān)于內(nèi)建角色的更多信息可以在這里了解。

  https://docs.mongodb.com/v4.4/reference/built-in-roles/

    準(zhǔn)備就緒后。 需要重啟mongo server服務(wù), 啟用訪問控制機制。 下面關(guān)閉所有節(jié)點。

mongo --port 27017 --eval 'db.adminCommand("shutdown")'
mongo --port 27018 --eval 'db.adminCommand("shutdown")'
mongo --port 27019 --eval 'db.adminCommand("shutdown")'

    重新啟動mongod,啟用訪問控制 --auth --keyFile

mongod --replSet rs0 --fork --auth  --keyFile  /srv/mongodb/k0/key --logpath  /srv/mongodb/0 --logappend --port 27017 --bind_ip 0.0.0.0,:: --dbpath /srv/mongodb/rs0-0  --oplogSize 128
mongod --replSet rs0 --fork --auth --keyFile  /srv/mongodb/k1/key  --logpath  /srv/mongodb/1 --logappend --port 27018 --bind_ip 0.0.0.0,:: --dbpath /srv/mongodb/rs0-1  --oplogSize 128
mongod --replSet rs0 --fork --auth  --keyFile  /srv/mongodb/k2/key  --logpath  /srv/mongodb/2 --logappend --port 27019 --bind_ip 0.0.0.0,:: --dbpath /srv/mongodb/rs0-2  --oplogSize 128

  此時,已經(jīng)啟用了訪問控制, 無權(quán)限用戶無法對數(shù)據(jù)庫進行讀寫,無法新增用戶。下面使用 帶認(rèn)證的方式登錄。 --username 及 --password

mongo admin --username admin --password 'admin!@#$'  --host rs0/10.13.50.40:27017,10.13.50.40:27018,10.13.50.40:27019

    admin的角色userAdminAnyDatabase 具有用戶管理權(quán)限,但無數(shù)據(jù)庫讀寫權(quán)限。 登陸后在 mongo shell中創(chuàng)建一個數(shù)據(jù)庫庫讀寫用戶,讀寫特定數(shù)據(jù)庫。test 用戶具有對數(shù)據(jù)庫 mytest 的讀寫權(quán)限, 屬于內(nèi)置的 readWrite 角色。

db.createUser( {user: "test",pwd: "test!@#$",roles: [ { role: "readWrite", db: "mytest" } ]})

    然后mongo shell 使用 test 登錄 驗證。

mongo test --username test --password 'test!@#$'  --host rs0/10.13.50.40:27017,10.13.50.40:27018,10.13.50.40:27019

  test登錄后,在mongo shell 中測試讀寫

use mytest
db.col.insert({name:'測試',age:1})
db.col.find()

   查詢結(jié)果

{ "_id" : ObjectId("61f3da65e72c3f10edef9a78"), "name" : "測試", "age" : 1 }

至此。一個三個節(jié)點的, 帶有訪問控制的副本集,就搞定收工。

到此這篇關(guān)于MongoDB 帶訪問控制的副本集部署的文章就介紹到這了,更多相關(guān)MongoDB副本集部署內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mongodb+php實現(xiàn)簡單的增刪改查

    mongodb+php實現(xiàn)簡單的增刪改查

    這篇文章主要介紹了mongodb+php實現(xiàn)簡單的增刪改查的相關(guān)資料,需要的朋友可以參考下
    2016-07-07
  • MongoDB實現(xiàn)創(chuàng)建刪除數(shù)據(jù)庫、創(chuàng)建刪除表(集合 )、數(shù)據(jù)增刪改查

    MongoDB實現(xiàn)創(chuàng)建刪除數(shù)據(jù)庫、創(chuàng)建刪除表(集合 )、數(shù)據(jù)增刪改查

    這篇文章介紹了MongoDB實現(xiàn)創(chuàng)建刪除數(shù)據(jù)庫、創(chuàng)建刪除表(集合 )、數(shù)據(jù)增刪改查的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • 優(yōu)化MongoDB配置來提高CPU使用率

    優(yōu)化MongoDB配置來提高CPU使用率

    MongoDB作為NoSQL數(shù)據(jù)庫的一種,已經(jīng)成為新一代數(shù)據(jù)存儲系統(tǒng)的趨勢,然而,MongoDB數(shù)據(jù)服務(wù)的性能問題一直是亟待解決的關(guān)鍵問題之一,在許多基于MongoDB的利用中,CPU利用率是一個重要的指標(biāo),它可以幫助我們對服務(wù)器的性能進行實時監(jiān)控,以便及時發(fā)現(xiàn)和修復(fù)效力瓶頸
    2024-01-01
  • mongodb官方的golang驅(qū)動基礎(chǔ)使用教程分享

    mongodb官方的golang驅(qū)動基礎(chǔ)使用教程分享

    這篇文章主要給大家介紹了關(guān)于mongodb官方的golang驅(qū)動基礎(chǔ)使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用mongodb具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • MongoDB通過查詢與游標(biāo)徹底玩轉(zhuǎn)分布式文件存儲

    MongoDB通過查詢與游標(biāo)徹底玩轉(zhuǎn)分布式文件存儲

    MongoDB最大的特點是它支持的查詢語言非常強大,其語法有點類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對數(shù)據(jù)建立索引,這篇文章主要介紹了MongoDB查詢與游標(biāo),徹底玩轉(zhuǎn)分布式文件存儲,需要的朋友可以參考下
    2023-01-01
  • mongodb清除連接和日志的正確方法分享

    mongodb清除連接和日志的正確方法分享

    這篇文章主要給大家介紹了關(guān)于mongodb清除連接和日志的正確方法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用mongodb具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2021-09-09
  • 解決mongo的tickets被耗盡導(dǎo)致卡頓問題

    解決mongo的tickets被耗盡導(dǎo)致卡頓問題

    這篇文章主要介紹了解決mongo的tickets被耗盡導(dǎo)致卡頓問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 深入了解MongoDB 分布式集群

    深入了解MongoDB 分布式集群

    這篇文章主要介紹了MongoDB 分布式集群的相關(guān)資料,文中講解非常細(xì)致,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • MongoDB 常用命令總結(jié)

    MongoDB 常用命令總結(jié)

    Mongo最大的特點是他支持的查詢語言非常強大,其語法有點類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對數(shù)據(jù)建立索引。Mongo還可以解決海量數(shù)據(jù)的查詢效率,當(dāng)數(shù)據(jù)量達(dá)到50GB以上時,Mongo數(shù)據(jù)庫訪問速度是MySQL10 倍以上
    2015-05-05
  • MongoDB系列教程(一):NoSQL起源

    MongoDB系列教程(一):NoSQL起源

    這篇文章主要介紹了MongoDB系列教程(一):NoSQL起源,本文講解了為什么出現(xiàn)NoSQL、NoSQL歷史、SQL和NoSql的區(qū)別、NoSQL數(shù)據(jù)庫類型等內(nèi)容,需要的朋友可以參考下
    2015-05-05

最新評論

锡林浩特市| 连江县| 芜湖县| 任丘市| 隆昌县| 青州市| 竹溪县| 福州市| 上栗县| 张家口市| 武穴市| 铅山县| 灵寿县| 敦煌市| 刚察县| 师宗县| 蒲城县| 明光市| 宁武县| 井研县| 县级市| 张家港市| 波密县| 南京市| 西林县| 通辽市| 淳化县| 西青区| 广东省| 辽源市| 吉水县| 色达县| 舒兰市| 桦南县| 大兴区| 平山县| 察雅县| 札达县| 馆陶县| 合江县| 颍上县|