windows搭建MongoDB副本集及開啓身份驗證

MongoDB副本集搭建spring

我搭建的是一個主節點,兩個副節點mongodb

  1. 構建目錄結構以下圖所示數據庫

  2. rs0是副本集名稱,每一份文件都是一個端口服務,以27018爲主節點。安全

 

每一份的目錄結構以下,conf存放的是配置文件信息,data27018是存放數據庫數據信息,keyfile是存放key文件的。用於各個節點之間的身份驗證。log存放數據庫的日誌信息,用來排查問題。服務器

 

  3.conf文件app

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必須是同一個。spa

5.修改每個實例的conf文件裏的端口號及數據存放地址,日誌等。3d

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鏈接複製集方式

 

 添加主機名,端口號,點擊發現,能夠查詢當前複製集中的端口服務。


 

終於寫完了,第一次寫,寫的很差,請見諒。

相關文章
相關標籤/搜索