MongoDB副本集搭建
我搭建的是一個主節點,兩個副節點
-
構建目錄結構如下圖所示
-
rs0是副本集名稱,每一份文件都是一個端口服務,以27018為主節點。
每一份的目錄結構如下,conf存放的是配置文件信息,data27018是存放數據庫數據信息,keyfile是存放key文件的。用於各個節點之間的身份驗證。log存放數據庫的日誌信息,用來排查問題。
3.conf文件
Conf是放配置文件 # mongod.conf # for documentation of all options, see: # http://docs.mongodb.org/manual/reference/configuration-options/ # Where and how to store data. storage: dbPath: D:\MongoDB\rs0\27018\data27018 journal: enabled: true # engine: # mmapv1: # wiredTiger: # where to write logging data. systemLog: destination: file logAppend: true path: D:\MongoDB\rs0\27018\log27018\mongo.log # network interfaces net: port: 27018 bindIp: 0.0.0.0 #processManagement: security: authorization: enabled keyFile: D:\MongoDB\rs0\27018\keyfile\replicaSet1.key #operationProfiling: replication: oplogSizeMB: 2048 replSetName: rs0 #sharding: #clusterRole: shardsvr ## Enterprise-Only Options: #auditLog: #snmp:
4.Keyfile下有個.key的文件為了複製集的用戶驗證。(keyfile文件是需要base編碼且差不多660個字符。權限)
可用Linux系統生成,或者找度娘。每一個端口服務下的key必須是同一個。
5.修改每一個實例的conf文件里的端口號及數據存放地址,日誌等。
6.運行win+r 選擇管理員啟動cmd
Windows註冊服務
Windows註冊服務 mongod.exe --config "D:\MongoDB\rs0\27018\conf\mongo.conf" --serviceName "MongoDB27018" --serviceDisplayName "MongoDB27018" –install mongod.exe --config "D:\MongoDB\rs0\27019\conf\mongo.conf" --serviceName "MongoDB27019" --serviceDisplayName "MongoDB27019" –install mongod.exe --config "D:\MongoDB\rs0\27020\conf\mongo.conf" --serviceName "MongoDB27020" --serviceDisplayName "MongoDB27020" --install
安裝成服務后可以到服務中查看。
7.註冊完成后,將所有服務啟動
8.重新打開cmd 連接到其中的一個mongodb實例命令為: mongo –host ip地址 –port 27018
9.再連接其他兩個實例
10.進入27018節點進行初始化配置
輸入命令
其中的localhost 應是本機的IP地址。(此處坑,如果是服務器上一定要設置為IP地址,否則會重頭再來)
rscongfig={"_id":"rs0",members:[{_id:0,host:"localhost:27018"},{_id:1,host:"localhost:27019"},{_id:2,host:"localhost:27020"}]}
初始化該配置
rs.initiate(rscongfig)
回車如下圖,“ok”:1,無錯誤信息。為正確
看下當前節點是否為主節點
rs.status()查看當前副本集狀態
health:1 //1表明狀態是正常,0表明異常 state:1 // 1表明是primary,2表明是slave,即做備份的機器
到此副本集就搭建成功了。接下來是開啟身份驗證
11.創建用戶名
連接到27018,運行
use admin
定位到admin數據庫,在這裏創建用戶信息
db.createUser( { user: "root", pwd: "root", roles: [ { role: "root", db: "admin" } ] } )
12.找到主庫的配置文件 conf 開啟身份驗證,同時從庫也要開,配置好位置。
conf 配置好后,將服務重新啟動,然後客戶端重新連接后 如果查看等報錯的話就會提示需要權限,
然後轉到use admin
db.auth(“admin”,”admin”)輸入用戶名密碼
返回1就是 成功。
然後登陸從節點進行登陸看一下是否需要提示。
如果都成功,可以寫入數據看一下複製集中是否有數據。
到此副本集身份驗證開啟說完了,下面說一下Springboot連接帶安全認證的複製集
application-dev.properties spring.data.mongodb.uri=mongodb://admin:password@127.0.0.1:27018,127.0.0.1:27019,127.0.0.1:27020/ecis?authSource=admin&authMechanism=SCRAM-SHA-1&replicaSet=rs0& connectTimeoutMS=30000
//解釋
admin:password是用戶名密碼 @IP地址端口號 authSource=admin 用戶名存在的數據庫 authMechanism 不造啥意思 replicaSet 複製集名稱 connectTimeoutMS=30000連接時間
下面是navicat連接複製集方式
添加主機名,端口號,點擊發現,可以查詢當前複製集中的端口服務。
終於寫完了,第一次寫,寫的不好,請見諒。
本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】
※台北網頁設計公司這麼多,該如何挑選?? 網頁設計報價省錢懶人包"嚨底家"
※網頁設計公司推薦更多不同的設計風格,搶佔消費者視覺第一線
※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整