首页 > 数据库 >连接MongoDB+Docker安装MongoDB

连接MongoDB+Docker安装MongoDB

时间:2023-04-17 18:11:34浏览次数:50  
标签:MongoDB 数据库 developSoftware db 用户 usr mongodb Docker 连接

一、连接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')

image

②、新增数据库并创建用户
  • 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,数据库,developSoftware,db,用户,usr,mongodb,Docker,连接
From: https://www.cnblogs.com/kakarotto-chen/p/17326698.html

相关文章

  • ansible的docker_container模块使用
    使用docker_container模块创建容器示例:----hosts:myserveripremote_user:root#执行用户gather_facts:false#屏蔽系统信息返回vars:ansible_python_interpreter:/usr/bin/python3#定义ansible使用python3的环境serial:"100%"#更新比列,可以......
  • 安装完SFTP后,用PUTTY连接CENTOS,软件闪退问题
    我出现这个问题是因为SFTP和SSH的配置文件是一个,都是etc/ssh/sshd_config所以是配置文件的问题,我将配置SFTP时设置的删除下面这些就好了MatchGroupsftpX11ForwardingnoAllowTcpForwardingnoChrootDirectory%h           ForceCommandinternal-sftp......
  • Dockerfile详细使用、docker私有仓库、dockercompose介绍、dockerpose部署flask+redis
    昨日内容#1容器其他操作1dockerstart容器id2dockerstop容器id3dockerrm容器id4dockerrm`dockerps-aq`#正在运行的容器不能删除5dockerexec容器id命令6dockercp宿主机目录容器id:容器目录#目录要存在7docker......
  • flask蓝图、g对象、数据库连接池
    昨日回顾#1cbv使用写一个类继承MethodView,写get,post...类属性decorators=[auth,]可以加装饰器#2cbv执行流程1跟django流程一样2entpint作用路径别名,add_url_rule(view_func=Index.as_view('index'))3为什么entpint不传,是被路由装饰器装饰的函数......
  • Splunk DB Connect 连接MySQL报错CLIENT_PLUGIN_AUTH is required
    01、问题描述使用SplunkDBConnect连接MySQL数据库读库时,报错CLIENT_PLUGIN_AUTHisrequired,如下图:02、原因分析根据报错信息,查阅相关资料,了解到报错原因:目标数据库为MySQL5.7,使用的mysql-connector-java-8.0.28.jar,mysql的jar包版本过高。JDBC数据库驱动程序:mysql-connector-......
  • Dockerfile自定义镜像
    常见的镜像在DockerHub就能找到,但是我们自己写的项目就必须自己构建镜像了。镜像结构镜像是将应用程序及其需要的系统函数库、环境、配置、依赖打包而成。我们以MySQL为例,来看看镜像的组成结构:简单来说,镜像就是在系统函数库、运行环境基础上,添加应用程序文件、配置文件、......
  • Seata:连接数据与应用
    作者:季敏(清铭)Seata开源社区创始人,分布式事务团队负责人。本文主要介绍分布式事务从内部到商业化和开源的演进历程,Seata社区当前进展和未来规划。Seata是一款开源的分布式事务解决方案,旨在为现代化微服务架构下的分布式事务提供解决方案。Seata提供了完整的分布式事务解决方案,包......
  • 优雅连接
    优雅连接什么是优雅关机?优雅关机就是服务端关机命令发出后不是立即关机,而是等待当前还在处理的请求全部处理完毕后再退出程序,是一种对客户端友好的关机方式。而执行Ctrl+C关闭服务端时,会强制结束进程导致正在访问的请求出现问题。如何实现优雅关机?Go1.8版本之后,http.Server......
  • docker常用命令
    一:docker服务相关命令#启动docker服务systemctlstartdocker#停止docker服务systemctlstopdocker#重启docker服务systemctlrestartdocker#查看docker服务状态systemctlstatusdocker#设置开机启动docker服务systemctlenabledocker#查看docker概要信息d......
  • 从零开始USRP 04 连接硬件的时候的一些教训
    在连接硬件的时候出现了一堆问题,大概记录一下。我用的代码是:https://www.cnblogs.com/loveandninenine/p/17286194.html然而,连接到硬件上,收端收不到,发射端发不出去,哈哈哈哈哈哈呕了。先说一下我的硬件连接。我一共用了三台USRP,其中A设备负责发射,BC设备负责接收。BC之间做了同......