您好,登錄后才能下訂單哦!
replica set權(quán)限認證
要生一個keyfile文件,用于節(jié)點之間權(quán)限認證的
mkdir -p /mnt/mongodb/rs/config
cd /mnt/mongodb/rs/config
openssl rand -base64 741 > mongodb-keyfile
chmod 300 mongodb-keyfile
官網(wǎng)上的是600的,必須要改為300,如果不是的話, 會在啟動的時候mongodb.log里寫權(quán)限太開放的原因?qū)е聠?/span>mongodb失?。。ㄟ@里先確保你已經(jīng)安裝了openssl,如果沒有裝,yum install openssl)
將mongodb-keyfile復制到每一個節(jié)點對應的目錄下,如果之前已經(jīng)啟動的mongodb的話,用mongo進入到終端后,先查看那個節(jié)點是主節(jié)點,rs.status(); 去到主節(jié)點下執(zhí)行:
use admin #選擇需要認證的數(shù)據(jù)
db.addUser('name','password');
當然,也可以某一個自建的庫進行權(quán)限認證
use test1
db.addUser('test','123456');
提示添加成功后,全部停止,每一節(jié)點執(zhí)行db.shutdownServer();然后對mongod.conf文件添加以下兩行:
auth=true
keyFile=/mnt/mongodb/rs/confile/mongodb-keyfile
最后全部重啟即可!
進入主節(jié)點終端,輸入
db.runCommand({getLastError:1, w: N});
如果沒有N,或者小于2,命令就會立刻返回,如果N等于2,主節(jié)點要等到至少一個從節(jié)點復制了上個操作都會響應命令(主節(jié)點本身也包括在N里面)。主節(jié)點使用local.slaves中存放的"syncedTo"信息來跟蹤從節(jié)點的更新情況。
當指定"w"選項后,還可以使用"wtimeout"選項,表示以毫秒為單位的超時。getLastError就能在上一個操作復制到N個節(jié)點超時時返回錯誤(默認情況下命令是沒有超時的)。
阻塞復制會導致寫操作明顯變慢,尤其是"w"的值比較大時。實際上,對于重要的操作將其值設置為2或者3就能效率與安全兼?zhèn)淞恕?/span>
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。