搭建mongodb单机部署-认证使用

搭建mongodb单机部署-认证使用

实现思路

先将配置文件配置好,使用不用认证的启动命令启动docker,然后创建账号并制定角色。在使用开启认证的命令重新启动容器就好。

这里我并没有说先停止容器,删掉容器重新创建容器。是因为我的启动命令中,第一步就是停止容器、删掉容器、再创建容器的。

后期关于部署方面我会使用docker-compose.yml容器编排的方式呈现给大伙,因为docker-compose.yml是真的方便,相当方便,一个命令就能解决所有。

1.5.1、创建文件

创建配置文件保存目录和数据保存目录
mkdir -p /data/mongodb/{/conf,/data,/logs}

1.5.2、配置文件

  • 第一台MongoDB配置文件

注意:更改端口号为最终端口号。这里的配置文件里面,不增加任何认证的问题,因为这只是为了集群和创建用户用的,后面需要重新覆盖掉。

vim /data/mongodb/conf/mongod.conf
net:
  port: 27017 # 这是启动端口
  bindIp: 0.0.0.0  # 允许哪些ip连接(好像和下面的命令参数 --bind_ip_all 相类似的作用)
systemLog:
  logAppend: true #  重新启动的mongodb的时候日志拼接在以前的日志文件上,不用新建

1.5.3、创建启动命令

首先不要增加任何认证,先启动不用认证的mongodb,在里面将需要的集合、副本和用户名密码权限等信息创建好,在使用需要认证的命令重新创建容器。因为配置的信息已经映射到宿主机上了,只要不把宿主机上的数据删除,所有配置都是存在的。

mkdir -p /opt/docker
vi /opt/docker/mongodb.sh
  • 不用认证的命令
MONGODB_DIR=/data/mongodb
NAME=mognodb
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

  • 启动
sh /opt/docker/mongodb.sh

1.5.4、配置副本

  • 连接任意一个节点,进行副本集配置
docker exec -it mognodb /bin/bash

连接三个节点中的任意一个,链接这个就是主节点。

./usr/bin/mongosh

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
NAME=mognodb
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 \
    --restart=always \
    -d mongo:7.0.5 \
	 --auth --bind_ip_all
  • 重启mongodb
sh /opt/docker/mongodb.sh

原创不易,转发指明出处。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/893817.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MyBatis 用法详解

文章目录 一、普通 SQL1.1 注解实现:1.1.1 参数传递:1.1.2 增(Insert):1.1.3 删(Delete):1.1.4 改(Update):1.1.5 查(Select&#xff…

OpenCV高级图形用户界面(15)注册一个回调函数来处理鼠标事件的函数setMouseCallback()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 为指定的窗口设置鼠标处理器。 setMouseCallback 是 OpenCV 中的一个功能,允许开发者注册一个回调函数来处理鼠标事件。当用户在窗口…

自监督学习:引领机器学习的新革命

引言 自监督学习(Self-Supervised Learning)近年来在机器学习领域取得了显著进展,成为人工智能研究的热门话题。不同于传统的监督学习和无监督学习,自监督学习通过利用未标注数据生成标签,从而大幅降低对人工标注数据…

champ模型部署指南

一、介绍 champ是由阿里巴巴、复旦大学和南京大学的研究人员共同提出的一种基于3D的将人物图片转换为视频动画的模型,该方法结合了3D参数化模型(特别是SMPL模型)和潜在扩散模型,能够精确地捕捉和再现人体的3D形状和动态,同时保持动画的时间一…

用SVM做时间序列预测真绝!最新思路无敌了,卷不动的进来看!

时间序列预测算法如今也算是百花齐放了,不过最近大家都在卷爆火的Transformer-based,卷不动的盆友其实也可以考虑从传统方法下手找创新,比如用SVM做时间序列预测。 SVM是一种经典的机器学习算法,在处理非线性及高维模式识别方面很…

k8s中的微服务

一、什么是微服务 用控制器来完成集群的工作负载,那么应用如何暴漏出去?需要通过微服务暴漏出去后才能被访问 Service是一组提供相同服务的Pod对外开放的接口。 借助Service,应用可以实现服务发现和负载均衡。 service默认只支持4层负载均…

黑马程序员-redis项目实践笔记2

目录 三、 Redis实现全局唯一ID 实现优惠卷秒杀下单 超卖问题 一人一单(单例项目线程安全问题) 一人一单(集群环境下的并发问题) 分布式锁的基本原理和实现方式对比 Redis分布式锁 实现核心思路 实现代码 Redis分布式锁…

供应商管理是什么?

你是一家制造业的老板,在需求旺盛的时段,却找不到一家合适的供应商,出现供应商突然退出合作;杀熟,供应的产品质量不过关等情况,企业的利益空间瞬间被压榨,急需一套管理系统来帮助选择供应商&…

《七度荒域:混沌之树》风灵月影二十二项游戏辅助:上帝模式/无限HP和EP/金币不减

《七度荒域:混沌之树》是款国产Roguelike银河恶魔城横版动作游戏,融合刷宝玩法。玩家将扮演修补世界的命运之子,探寻碎裂世界的秘密,在战斗轮回中成长,挑战未知与隐秘力量。风灵月影版修改器提供更多自定义和游戏体验调整选项&…

关于MyBatis的一些面试题

mybatis的执行流程 MyBatis 的执行流程主要包括 SQL 解析、参数绑定、执行查询/更新、结果映射等几个步骤。下面详细解释每个步骤的执行流程: 1. 加载配置文件和映射文件 加载 MyBatis 配置文件:启动时,MyBatis 通过 SqlSessionFactoryBui…

Transformer图解以及相关的概念

前言 transformer是目前NLP甚至是整个深度学习领域不能不提到的框架,同时大部分LLM也是使用其进行训练生成模型,所以transformer几乎是目前每一个机器人开发者或者人工智能开发者不能越过的一个框架。接下来本文将从顶层往下去一步步掀开transformer的面…

2018年计算机网络408真题解析

第一题: 解析:TCP/IP体系结构应用层常用协议及其相应的运输层协议 TCP协议是面向连接可靠数据传输服务,UDP无连接不可靠的数据传输服务,IP无连接不可靠的数据连接服务。 FTP协议,SMTP协议和HTTP协议使用TCP协议提供的面…

SaaS架构:中央库存系统架构设计

大家好,我是汤师爷~ 近年来,越来越多的零售企业大力发展全渠道业务。在销售额增长上,通过线上的小程序、直播、平台渠道等方式,拓展流量变现渠道。在会员增长方面,通过多样的互动方式,全渠道触达消费者&am…

Power BI - 设置Waterfall Chart第一个Pillar的颜色

1.简单介绍 有的用户可能会单独设置Column Chart(条形图)的第一个柱子的颜色,如下图所示, 这种其实可以通过Column Chart的Conditional formating进行设置, - SWICH SELECTEDVALUE 或者也可以直接对单独的Column进行…

深入拆解TomcatJetty(一)

深入拆解Tomcat&Jetty(一) 专栏地址:https://time.geekbang.org/column/intro/100027701 1、Web容器是什么 早期的 Web 应用主要用于浏览新闻等静态页面,HTTP 服务器(比如 Apache、Nginx)向浏览器返…

Google play开发者账号被封,申诉就有机会,别不信

在谷歌上架,开发者账号被封对很多开发者来说已经是家常便饭了,虽说一直都有在流传申诉没有用。别灰心啊,申诉就有机会,不少开发者都申诉成功了。 尤其是用一个少一个、价值好几个w的老号,不申诉就认栽实在是太亏了&…

【黑马点评优化】之使用Caffeine+Redis实现应用级二层缓存

【黑马点评优化】之使用CaffeineRedis实现应用级二层缓存 1 缓存雪崩定义及解决方案2 为什么要使用多级缓存3 RedisCaffeine实现应用层二级缓存原理4 利用CaffeineRedis解决Redis突然宕机导致的缓存雪崩问题4.1 pom.xml文件引入相关依赖4.2 本地缓存配置类4.3 修改ShopServiceI…

大有期货携手云轴科技ZStack 获“鼎新杯”数字化转型典型案例二等奖

近日,由中国通信标准化协会主办、中国信息通信研究院(简称“中国信通院”)承办、中国通信企业协会支持的“2024数字化转型发展大会”在北京召开。本届大会以“拥抱数智化无限可能”为主题,会上公布了第三届“鼎新杯”数字化转型应…

Centos 7.9NFS搭建

原创作者:运维工程师 谢晋 Centos 7.9NFS搭建 NFS服务端安装客户机访问共享配置 NFS服务端安装 SSH连接系统登录到服务端安装nfs服务 # yum -y install nfs-utils2. 安装完成后,查看需要共享的目录,这边共享的是/home目录,如…

Selenium - 用这个力量做任何你想做的事情

Chrome DevTools 简介 Chrome DevTools 是一组直接内置在基于 Chromium 的浏览器(如 Chrome、Opera 和 Microsoft Edge)中的工具,用于帮助开发人员调试和研究网站。 借助 Chrome DevTools,开发人员可以更深入地访问网站&#xf…