天天看點

Mongodb3.0.5副本集搭建及spring和java連接配接副本集配置

這是去年寫的一篇文檔,最近突然發現并沒有發不出來,是以現在補上,希望能對某些朋友有所幫助。因為當時記錄時沒有截圖,是以這裡看起來可能就比較單調。

一、基本環境:

mongdb3.0.5資料庫

spring-data-mongodb-1.7.2.jar

mongo-java-driver-3.0.2.jar

linux-redhat6.3

tomcat7

二、搭建mongodb副本集:

1、  分别在三台linux系統機上安裝mongodb,(為避免和機器上原有的mongodb端口沖突,這裡設為57017):

192.168.0.160

192.168.0.211(192.168.0.33上的虛拟機)

192.168.0.213(192.168.0.4上的虛拟機)

每個mongodb的安裝這裡就不細說了,可以參考我的安裝方面的文檔,注意先不要更改使用者驗證方式。另外,這裡如果沒有三台機,也可以隻用一台機開三個端口,同時準備三個資料存儲目錄。

2、  以副本集的方式啟動三個mongodb:

隻是在單機mongodb啟動的基礎上加入副本集參數—replset,例如啟動160的:

其中,reptest是指定的副本集名稱,另外兩台機也也要和這個一樣。如:

3、  在任意一台機上配置副本集,這裡在160上配置:

(1)、進入160上的mongo sehll(資料操作界面):

(2)、切換到admin資料庫:

(3)、配置副本集:

(4)、加載副本集配置檔案:

(5)、檢視副本集狀态:

   正常情況下可以看到160會是主伺服器,顯示primary,如果是,就直接進行以下操作,如果不是,就切換到primary上進行以下操作(換到另一個mongo);

(6)、增加使用者:

(7)、更改使用者驗證方式:  

(8)、删除使用者:

(9)、重建立立使用者(系統中和上邊建立的使用者驗證方式不一樣):

(10)、關閉三個mongodb:

(11)、在160的資料庫的data目錄中建立keyfile檔案:     

(12)、給keyfile檔案設定600權限(必須設定600權限):

(13)、把這個keyfile檔案上傳到另外兩台機上mongodb的data目錄中:     

(14)、在mongodb.conf檔案中加入keyfile,例如160:

(15)、重新啟動mongodb,使用replset和auth參數:

(16)、在priority中設定副本內建員的優先級,給160設定最高優先級,優先級預設都是1:   

 這樣的話,隻要160的mongodb是開着的,那麼主伺服器就會是160

三、spring中連接配接副本集的配置:

隻需要配置一個ip,就會自動切換。使用者驗證格式:username:password@dbname。

四、java中連接配接副本集的代碼:

使用者驗證格式是:username,dbname,password