当前位置: 首页 >  互联网技术 >  连接MongoDB+Docker安装MongoDB

连接MongoDB+Docker安装MongoDB

导读:一、Docker安装MongoDb.MongoDB版本:5.0.5.参考:.https://www.cnblogs.com/cwp-bg/p/10403327.html.https://blog.csdn.net/weixin_45753881/article/details/1

一、Docker安装MongoDb

  • 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

1、无设置密码

  • 最终成功页面

2、设置了密码

  • 后续同1
内容
  • 【Oculus Interaction SDK】(六)实体按钮 & 按压交互
    【Oculus Interact
    2023-12-10
    前言.前段时间 Oculus 的 SDK.频繁更新,很多已有的教程都不再适用于现在的版本了。本系列文章的主要目的是记录现
  • 【Oculus Interaction SDK】(五)设置不同的抓握手势
    【Oculus Interact
    2023-12-10
    前言.前段时间 Oculus 的 SDK.频繁更新,很多已有的教程都不再适用于现在的版本了。本系列文章的主要目的是记录现
  • 【Oculus Interaction SDK】(八)特殊的 UI(曲面效果 & 手指点击)
    【Oculus Interact
    2023-12-10
    前言.前段时间 Oculus 的 SDK.频繁更新,很多已有的教程都不再适用于现在的版本了。本系列文章的主要目的是记录现
  • 【Oculus Interaction SDK】(十)在 VR 中使用手势识别
    【Oculus Interact
    2023-12-10
    前言.前段时间 Oculus 的 SDK.频繁更新,很多已有的教程都不再适用于现在的版本了。本系列文章的主要目的是记录现
  • 【Oculus Interaction SDK】(七)使用射线进行交互(物体 & UI)
    【Oculus Interact
    2023-12-10
    前言.前段时间 Oculus 的 SDK.频繁更新,很多已有的教程都不再适用于现在的版本了。本系列文章的主要目的是记录现
  • 【Oculus Interaction SDK】(三)限制可操作物体的移动 / 旋转
    【Oculus Interact
    2023-12-09
    前言.前段时间 Oculus 的 SDK.频繁更新,很多已有的教程都不再适用于现在的版本了。本系列文章的主要目的是记录现
  • cocos2d-x 3.17 推箱子 0.1
    cocos2d-x 3.17 推
    2023-12-07
    简述.sokoban-cocos2dx.此版本为推箱子游戏的基础版本, 后续添加如下功能.人物动画.TiledMap 解
  • 【Oculus Interaction SDK】(十二)Meta Quest 如何开启透视(Passthrough)
    【Oculus Interact
    2023-12-07
    前言.前段时间 Oculus 的 SDK.频繁更新,很多已有的教程都不再适用于现在的版本了。本系列文章的主要目的是记录现
  • 【Lua】(一)VSCode 搭建 Lua 开发环境
    【Lua】(一)VSCode 搭
    2023-12-05
    前言.最近在找工作,基本所有的岗位都会问到 Lua(甚至拼 UI 的都要求会 Lua),咱能怎么办呢,咱也只能学啊…….
  • [Lua][Love] "图块集与地图" 加载显示功能 TileMap
    [Lua][Love] "图块集
    2023-12-05
    效果.安装库.安装两个库,分别用来读xml和csv,如果有luarocks,执行下列命令.luarocks instal
  • 【Oculus Interaction SDK】(十一)关于手势识别中手势设置的详细信息
    【Oculus Interact
    2023-12-03
    前言.前段时间 Oculus 的 SDK.频繁更新,很多已有的教程都不再适用于现在的版本了。本系列文章的主要目的是记录现
  • 园林绿化养护服务
    园林绿化养护服务
    2024-01-10
    园林绿化养护服务.产品功能.园林绿化养护服务是一项专业的服务,旨在为客户提供全方位的园林绿化管理和养护服务。我们团队的专
  • 园林景观设计
    园林景观设计
    2023-12-11
    园林景观设计产品介绍.产品功能.园林景观设计是一项专业的设计服务,主要用于规划和设计公共和私人的园林空间。其功能包括根据
  • 绿化工程材料供应
    绿化工程材料供应
    2023-12-16
    绿化工程材料供应.产品功能.我们的绿化工程材料供应主要用于城市绿化、园林景观建设、庭院绿化等相关项目。产品种类丰富,覆盖
  • 城市绿化规划设计
    城市绿化规划设计
    2024-01-15
    城市绿化规划设计.随着城市化进程的不断加快,城市绿化规划设计成为了一个备受关注的问题。如何在城市中保护和增加绿地,促进城
  • 喷泉景观设计
    喷泉景观设计
    2024-01-05
    喷泉景观设计.喷泉是一种极具观赏性和装饰性的景观设计元素,它不仅可以为周围的环境增添一份生气与动感,更可以为人们带来一份
  • 公园景观规划设计
    公园景观规划设计
    2024-01-10
    公园景观规划设计.产品功能.我们的公园景观规划设计产品旨在为城市和乡村地区提供高质量的公共休闲空间。我们致力于通过规划和
  • 园林休闲座椅制作
    园林休闲座椅制作
    2024-01-20
    园林休闲座椅制作.产品功能.园林休闲座椅是专门为户外休闲空间设计制作的座椅产品。产品具有耐候性强、外观美观、舒适度高等特
  • 喷泉设计与安装
    喷泉设计与安装
    2023-12-21
    喷泉设计与安装.喷泉是园林景观中不可或缺的元素之一,无论是在公园、**还是私人花园中,喷泉都能为环境增添灵动的气息,成为
  • 室外园林景观配套设施制作
    室外园林景观配套设施制作
    2024-01-15
    室外园林景观配套设施制作.产品功能.我们的室外园林景观配套设施制作主要提供定制化的户外景观配套设施,包括花池、凉亭、栏杆
  • 景观照明工程
    景观照明工程
    2023-12-16
    景观照明工程.产品功能.景观照明工程是一种专门为户外景观设计的照明方案。它既可以美化城市风景,提升城市形象,也可以为人们