成都网站设计与制作,网站建设属于无形资产,手机网站有什么,做校园文化的网站搭建mongodb副本集-开启权限认证 mongo:7.0.5
1.5.1、创建文件
创建配置文件保存目录和数据保存目录
mkdir -p /data/mongodb/{/conf,/data,/logs}生成和设置权限
这个文件一定要在一个服务里面生成然后复制到其它服务器#xff0c;所有服务器的这个key一定是相同的。
op…搭建mongodb副本集-开启权限认证 mongo:7.0.5
1.5.1、创建文件
创建配置文件保存目录和数据保存目录
mkdir -p /data/mongodb/{/conf,/data,/logs}生成和设置权限
这个文件一定要在一个服务里面生成然后复制到其它服务器所有服务器的这个key一定是相同的。
openssl rand -base64 756 /data/mongodb/conf/mongodbKeyfile.keychmod 400 /data/mongodb/conf/mongodbKeyfile.key在192.168.1.124节点生成然后复制到其它4个节点中。
scp mongodbKeyfile.key root192.168.1.125:/data/mongodb/conf
scp mongodbKeyfile.key root192.168.1.126:/data/mongodb/conf
scp mongodbKeyfile.key root192.168.1.127:/data/mongodb/conf
scp mongodbKeyfile.key root192.168.1.128:/data/mongodb/conf1.5.2、配置文件
第一台MongoDB配置文件
注意更改端口号为最终端口号。这里的配置文件里面不增加任何认证的问题因为这只是为了集群和创建用户用的后面需要重新覆盖掉。
vim /data/mongodb/conf/mongod.confnet:port: 27017 # 这是启动端口bindIp: 0.0.0.0 # 允许哪些ip连接好像和下面的命令参数 --bind_ip_all 相类似的作用
systemLog:logAppend: true # 重新启动的mongodb的时候日志拼接在以前的日志文件上不用新建
security:keyFile: /data/configdb/mongodbKeyfile.key # 这个路径很重要注意这个路径是下面容器映射过的路径不要写宿主机的绝对路径容器是访问不到宿主机的应该写容器中的路径。authorization: enabled # 开启客户端连接验证
replication:replSetName: rs # 副本集的名称
setParameter:# 事务锁超时最长时间(毫秒)默认 3 毫秒maxTransactionLockRequestTimeoutMillis: 10001.5.3、创建启动命令
首先不要增加任何认证先启动不用认证的mongodb在里面将需要的集合、副本和用户名密码权限等信息创建好在使用需要认证的命令重新创建容器。因为配置的信息已经映射到宿主机上了只要不把宿主机上的数据删除所有配置都是存在的。
mkdir -p /opt/docker
vi /opt/docker/mongodb.sh不用认证的命令
MONGODB_DIR/data/mongodb
NAMEmognodb
CONF/data/mongodb/conf
docker stop ${NAME}
docker rm ${NAME}
docker run --name ${NAME} \-p 35964:27017 \-v ${MONGODB_DIR}/data:/data/db \-v ${CONF}:/data/configdb \-v ${MONGODB_DIR}/logs:/data/log \-d mongo:7.0.5 \--replSet rs启动
sh /opt/docker/mongodb.sh1.5.4、配置副本
连接任意一个节点进行副本集配置
docker exec -it mognodb /bin/bash连接三个节点中的任意一个链接这个就是主节点。
./usr/bin/mongosh配置副本
var config{_id:rs,members:[{_id:1,host:192.168.1.124:35964,priority:5},{_id:2,host:192.168.1.125:35964,priority:4},{_id:3,host:192.168.1.126:35964,priority:3},{_id:4,host:192.168.1.127:35964,priority:2},{_id:5,host:192.168.1.128:35964,priority:1},
]};
rs.initiate(config)查看副本集配置信息 rs.conf()查看副本集状态
rs.status()1.5.5、创建用户名和密码
切换数据库和创建用户
use userdb
db.createUser({ user: oeirnergnekladc, pwd: aE3UurXjWtxbHN80RCxL, roles: [ { role: root, db: admin } ] });
db.auth(oeirnergnekladc, aE3UurXjWtxbHN80RCxL);这里需要注意权限的问题权限给root似乎太大了但是也不能给太小给太小会发现干啥都没权限。 1.5.6、创建需要认证的启动命令
先退出mongodb和容器回到宿主机
exit
exit把原来的启动命令删除重新编辑启动命令。
rm -rf /opt/docker/mongodb.sh
vi /opt/docker/mongodb.sh写入启动命令
MONGODB_DIR/data/mongodb
NAMEmognodb
CONF/data/mongodb/conf
docker stop ${NAME}
docker rm ${NAME}
docker run --name ${NAME} \-p 35964:27017 \-v ${MONGODB_DIR}/data:/data/db \-v ${CONF}:/data/configdb \-v ${MONGODB_DIR}/logs:/data/log \--restartalways \-d mongo:7.0.5 \--replSet rs \--auth --bind_ip_all -f /data/configdb/mongod.conf重启mongodb
sh /opt/docker/mongodb.sh原创不易转发制定出处感谢网友理解