连接MongoDB+Docker安装MongoDB
一、连接MongoDB[*]工具:studio 3T
[*]下载:https://studio3t.com/download-thank-you/?OS=win64
1、无设置密码
https://img2023.cnblogs.com/blog/1848807/202304/1848807-20230410165148141-1466945917.png
https://img2023.cnblogs.com/blog/1848807/202304/1848807-20230410165234268-1337488418.png
https://img2023.cnblogs.com/blog/1848807/202304/1848807-20230410165252151-900359923.png
[*]最终成功页面
https://img2023.cnblogs.com/blog/1848807/202304/1848807-20230410165316988-2145428729.png
2、设置了密码
https://img2023.cnblogs.com/blog/1848807/202304/1848807-20230410165346292-1700815944.png
https://img2023.cnblogs.com/blog/1848807/202304/1848807-20230410165417268-990783170.png
[*]后续同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=true2、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.52.2、设置密码登陆
[*]Mongo提供了一些默认的角色
权限描述read允许用户读取指定数据库readWrite允许用户读写指定数据库dbAdmin允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问dbOwner提供该数据库下所有权限操作能力。userAdmin提供该数据库下用户和权限的创建和修改的操作能力。可以创建dbOwner权限。clusterAdmin提供最大的集群管理访问。clusterManager提供对集群的管理和监控操作。具有此角色的用户可以访问config和local 数据库,分别用于分片和复制。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')https://img2023.cnblogs.com/blog/1848807/202304/1848807-20230417175725120-135728488.png
②、新增数据库并创建用户
[*]use,切换到指定数据库。没有这个数据库会创建一个。
use myMongo
[*]创建用户:cs,密码:cs123456
db.createUser({user:"cs", pwd:"cs123456", roles:[{role: "dbOwner", db:"myMongo" }]})
[*]登陆/认证用户
db.auth('cs','cs123456')
[*]查看该数据库下面的表(数据)
show collections3、总结
[*]如果是云服务器(如阿里云服务器),记得开放端口:27017
[*]MongoDB 默认直接连接,无须身份验证,如果当前机器可以公网访问,且不注意Mongodb 端口(默认 27017)的开放状态,那么Mongodb就会产生安全风险。
[*]使用URL
# 无账号密码
mongodb://yourIp:27017/myMongo
# 有账号密码
mongodb://cs:cs123456@yourIp:27017/myMongo
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]