一、连接MongoDB

1、无设置密码

  • 最终成功页面

2、设置了密码

  • 后续同1

二、安装

  • MongoDB版本:5.0.5

  • 参考:

https://www.cnblogs.com/cwp-bg/p/10403327.html

https://blog.csdn.net/weixin_45753881/article/details/126647801

https://www.jianshu.com/p/79caa1cc49a5

1、准备工作

①、创建三个文件夹

# 数据文件夹
mkdir /usr/developSoftware/mongodb/data
# 备份+日志
mkdir /usr/developSoftware/mongodb/backup
# 配置文件夹
mkdir /usr/developSoftware/mongodb/conf

②、准备配置文件,也可以不准备

touch /usr/developSoftware/mongodb/conf/mongodb.conf
touch /usr/developSoftware/mongodb/backup/log.txt
  • mongodb.conf 放到 /usr/developSoftware/mongodb/conf 下面

  • mongodb.conf 内容:

#数据库数据存放目录
dbpath=/usr/developSoftware/mongodb/data
#数据库日志存放目录
logpath=/usr/developSoftware/mongodb/backup/log.txt
#以追加的方式记录日志
logappend = true
#端口号 默认为27017
port=27017
#以后台方式运行进程
fork=true
#开启用户认证
auth=true

2、Docker安装

2.1、镜像、容器操作

# 搜索
docker search mongodb
# 拉取镜像
docker pull mongo
# 查看镜像
docker images
  • 创建和启动容器

    • 重点:记得加:--auth
    • 如果不开启身份验证后果:①不用账号密码,直接可以登陆;②第二天数据会被删除
# 创建和启动容器
# 容器命名mymongo,数据库数据文件挂载到/usr/developSoftware/mongodb/data,备份文件挂载到/usr/developSoftware/mongodb/backup,启动的配置文件目录挂载到容器的/usr/developSoftware/mongodb/conf,--auth开启身份验证。
docker run -d --name mymongo -p 27017:27017 --restart=always -v /usr/developSoftware/mongodb/data:/data/db -v /usr/developSoftware/mongodb/backup:/data/backup -v /usr/developSoftware/mongodb/conf:/data/configdb -d mongo --auth
  • 查看版本
# 进入容器
docker exec -it mymongo /bin/bash
# 查看版本
mongod --version
# 使用MongoDB客户端进行操作
mongo > show dbs #查询所有的数据库
admin 0.000GB
config 0.000GB
local 0.000GB
> db.version() #查询版本
5.0.5

2.2、设置密码登陆

  • Mongo提供了一些默认的角色
权限 描述
read 允许用户读取指定数据库
readWrite 允许用户读写指定数据库
dbAdmin 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问
dbOwner 提供该数据库下所有权限操作能力。
userAdmin 提供该数据库下用户和权限的创建和修改的操作能力。可以创建dbOwner权限。
clusterAdmin 提供最大的集群管理访问。
clusterManager 提供对集群的管理和监控操作。具有此角色的用户可以访问configlocal 数据库,分别用于分片和复制。
clusterMonitor 提供对监控工具的只读访问。
hostManager 提供监控和管理能力。
backup 数据备份能力。
restore 数据恢复能力。
readAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root 超级管理员,简而言之,畅通无阻。
①、设置管理账户
# 进入amdin数据库
use admin
  • 创建超级管理账号
# 创建超级权限root角色的用户,或者userAdminAnyDatabase 等角色权限比较大的用户,我创建的是拥有超级权限root角色的用户root
# 用户名:rootCs,密码:123rootCs456,角色:root,数据库:admin
db.createUser({user:'rootCs',pwd:'123rootCs456',roles:[{role:'root',db:'admin'}]})
  • 登陆超级管理账号
# 认证登录db.auth('用户名','密码'),打印1则代表认证通过
db.auth('rootCs','123rootCs456')

②、新增数据库并创建用户
  • use,切换到指定数据库。没有这个数据库会创建一个。
use myMongo
  • 创建用户:cs,密码:cs123456
db.createUser({user:"cs", pwd:"cs123456", roles:[{role: "dbOwner", db:"myMongo" }]})
  • 登陆/认证用户
db.auth('cs','cs123456')
  • 查看该数据库下面的表(数据)
show collections

3、总结

  • 如果是云服务器(如阿里云服务器),记得开放端口:27017

  • MongoDB 默认直接连接,无须身份验证,如果当前机器可以公网访问,且不注意Mongodb 端口(默认 27017)的开放状态,那么Mongodb就会产生安全风险。

  • 使用URL

# 无账号密码
mongodb://yourIp:27017/myMongo
# 有账号密码
mongodb://cs:cs123456@yourIp:27017/myMongo

连接MongoDB+Docker安装MongoDB的更多相关文章

  1. Linux平台安装MongoDB及使用Docker安装MongoDB

    一.Linux平台安装MongoDB MongoDB 提供了 linux 各发行版本 64 位的安装包,你可以在官网下载安装包. 下载地址:https://www.mongodb.com/downlo ...

  2. Docker 安装 mongoDB(五)

    Docker 安装 mongoDB 1.搜索docker镜像(可以看到搜索的结果,这个结果是按照一定的星级评价规则排序的) docker search mongo 2.拉取docker的mongo镜像 ...

  3. MongoDB学习笔记二:使用Docker安装MongoDB

    目录 Docker安装MongoDB Docker给MongoDB设置用户密码 NoSQL Manager for MongoDB连接 为admin赋权限 上一个笔记介绍了Windows下安装Mong ...

  4. Docker安装MongoDB、MySQL、Jenkins、Gitlab、Nginx

    Docker安装MongoDB.MySQL.Jenkins.Gitlab.Nginx 安装MongoDB 1. 拉取镜像 $ sudo docker pull mongo 2. 运行镜像 $ sudo ...

  5. Docker01 centos系统安装、centos安装docker、docker安装mongoDB

    1 centos系统安装 本博文是基于 centos6.5 的,利用VMware 虚拟机搭建 centos6.5 系统 1.1 centos6.5资源获取 1.2 安装 1.2.1 新建虚拟机 1.2 ...

  6. docker 安装MongoDB以及设置用户

    MongoDB 是一个免费的开源跨平台面向文档的 NoSQL 数据库程序. 1.查看可用的 MongoDB 版本 访问 MongoDB 镜像库地址: https://hub.docker.com/_/ ...

  7. docker安装mongodb和redis

    一.安装mongodb docker pull mongo docker run -p 27017:27017 -d --name mongodb01 mongo docker run -p 2701 ...

  8. docker安装MongoDB创建用户,并用工具Robo连接简单CRUD

    搜索mongo docker search mongo 拉取mongo[这里默认为latest] docker pull mongo 查看本地镜像 启动容器[就是安装,-v后面的参数表示把数据文件挂载 ...

  9. Docker安装MongoDB并使用Navicat连接

    MongoDB简介: MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案.是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库 ...

  10. docker安装mongodb并备份

    安装 官方镜像地址: https://hub.docker.com/_/mongo?tab=description 可以查看对应的dockerfile, 通过观察docker-entrypoint.s ...

随机推荐

  1. Jmeter检查点

    一.Response Assertion(响应断言) 1. 添加响应断言 对Web请求的响应结果进行验证,Response Assertion配置参数 2. 输入需要匹配的字符串 此处对于访问Baid ...

  2. JS实现一个函数getType获取所有的数据类型

    1 function getType(obj) { 2 if (obj === null) { 3 return String(obj) 4 } 5 const toType = (obj) => ...

  3. golang RWMutex RLock重入导致死锁

    现象 一个组件实现了raft分布式协议,在分布式部署环境中来进行选主,在某客户现场突然发生文件句柄泄露,在打印某些错误日志后,几个小时内没有日志打印,然后某个协程突然报无可用的文件句柄. 分析 经过代 ...

  4. Otto Group Product Classification

    遇到的坑: 做多分类,用CrossEntropyLoss时,训练时候的正确标签的范围应该是[0,n-1],而不是[1,n],不然会报 IndexError: Target is out of boun ...

  5. jxg项目Day1-配置

    1.搭建mysql与datagrip的连接(还未完成建表学习) 2.搭好项目框架:目前划分: maven我是直接复制的之前的两个项目的依赖,但是测试的时候遇到点问题:说数据库连不上,但是我明明已经配置 ...

  6. Servlet的学习之路

    一.什么是什么Servlet? Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程 ...

  7. 【前端样式】关于Element-plus 菜单 unique-opened不生效的问题

    需要保证el-sub-menu 的唯一性,即index得写在el-sub-menu上,否则 unique-opened 属性不生效.

  8. 【Leetcode】 剑指offer:字符串(简单)--Day03

    剑指 Offer 05. 替换空格 请实现一个函数,把字符串 s 中的每个空格替换成"%20". 逐字符遍历原字符串,遍历过程中对存放结果的字符串分情况更新. class Solu ...

  9. apt常用命令 - 搬运

    Debian/Ubuntu基础的系统可以使用apt安装.卸载软件包 转自:https://www.jb51.net/os/Ubuntu/56362.html APT 常用命令如下: apt list ...

  10. 在创建maven项目时提示找不到插件 'org.springframework.boot:spring-boot-maven-plugin:'

    因为是版本号缺失,不过我idea自建项目没这个问题,但是从springboot官网上创建下载就出现了这个问题. 找到文件夹的打开pom.xml文件 然后找到下图位置添加版本号,我的是2.6.1 添加完 ...