加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 服务器 > 系统 > 正文

MongoDB repl set权限认证配置流程

发布时间:2023-09-22 15:39:33 所属栏目:系统 来源:
导读:要生一个keyfile文件,用于节点之间权限认证的

mkdir -p /mnt/mongodb/rs/config

cd /mnt/mongodb/rs/config

openssl rand -base64 741 > mongodb-keyfile

chmod 300 mongodb-keyfile

要生一个keyfile文件,用于节点之间权限认证的
 
mkdir -p /mnt/mongodb/rs/config  
 
cd /mnt/mongodb/rs/config  
 
openssl rand -base64 741 > mongodb-keyfile  
 
chmod 300 mongodb-keyfile  
 
官网上的是600的,必须要改为300,如果不是的话, 会在启动的时候mongodb.log里写权限太开放的原因导致启动mongodb失败!(这里先确保你已经安装了openssl,如果没有装,yum install openssl)
 
将mongodb-keyfile复制到每一个节点对应的目录下,如果之前已经启动的mongodb的话,用mongo进入到终端后,先查看那个节点是主节点,rs.status(); 去到主节点下执行:
 
use admin  #选择需要认证的数据  
 
db.addUser('name','password');
 
当然,也可以某一个自建的库进行权限认证
 
use test1  
 
db.addUser('test','123456');  
 
提示添加成功后,全部停止,每一节点执行db.shutdownServer();然后对mongod.conf文件添加以下两行:
 
auth=true  
 
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就能效率与安全兼备了。
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章