MongoDB repl set權限認證配置步驟

replica set權限認證mongodb

要生一個keyfile文件,用於節點之間權限認證的安全

  1. mkdir -p /mnt/mongodb/rs/config  ide

  2. cd /mnt/mongodb/rs/config  spa

  3. openssl rand -base64 741 > mongodb-keyfile  ssl

  4. chmod 300 mongodb-keyfile  get

官網上的是600的,必需要改成300,若是不是的話, 會在啓動的時候mongodb.log裏寫權限太開放的緣由致使啓動mongodb失敗!(這裏先確保你已經安裝了openssl,若是沒有裝,yum install opensslopenssl

 

mongodb-keyfile複製到每個節點對應的目錄下,若是以前已經啓動的mongodb的話,mongo進入到終端後,先查看那個節點是主節點,rs.status(); 去到主節點下執行:it

  1. use admin  #選擇須要認證的數據  base64

  2. db.addUser('name','password'); ast

固然,也能夠某一個自建的庫進行權限認證

  1. use test1  

  2. db.addUser('test','123456');  

 

提示添加成功後,所有中止,每一節點執行db.shutdownServer();而後對mongod.conf文件添加如下兩行:

  1. auth=true  

  2. keyFile=/mnt/mongodb/rs/confile/mongodb-keyfile 

 

最後所有重啓便可!

 

進入主節點終端,輸入

db.runCommand({getLastError:1, w: N});  

若是沒有N,或者小於2,命令就會馬上返回,若是N等於2,主節點要等到至少一個從節點複製了上個操做都會響應命令(主節點自己也包括在N裏面)。主節點使用local.slaves中存放的"syncedTo"信息來跟蹤從節點的更新狀況。

當指定"w"選項後,還可使用"wtimeout"選項,表示以毫秒爲單位的超時。getLastError就能在上一個操做複製到N個節點超時時返回錯誤(默認狀況下命令是沒有超時的)

阻塞複製會致使寫操做明顯變慢,尤爲是"w"的值比較大時。實際上,對於重要的操做將其值設置爲2或者3就能效率與安全兼備了。

相關文章
相關標籤/搜索