docker部署mongo过程

1、拉取MongoDB镜像,这里拉取最新版本。

bash 复制代码
docker pull mongo

2、运行容器

bash 复制代码
docker run -d --name mongo  -p 27017:27017 \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=123456 \
mongo:latest  --auth

#由于 mongodb 默认情况下,不需要用户名密码就可以使用,使用 --auth 参数表示需要用户名和密码登录。

3 常用命令

3.1 mongo中角色对应权限

权限 说明
read 允许用户读取指定数据库
readWrite 允许用户读写指定数据库
dbAdmin 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin 允许用户向system.users集合写入,可以在指定数据库里创建、删除和管理用户
clusterAdmin 只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限
readAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限
root 只在admin数据库中可用。超级账号,超级权限

3.2 创建用户并赋予root权限

bash 复制代码
#登录数据库
mongo admin -u admin -p 123456
#创建用户,首先进入admin数据库创建属于他的用户
use admin
db.createUser(
	{
		user:"root",
		pwd:"123456",
		roles:[{role:"root",db:"admin"}]
	}
);
#验证用户账号
db.auth('root', '123456');
#查看这个数据库中的所有用户'
show users;

'

登入这个用户并指定数据库

bash 复制代码
mongo  -u root -p 1234566  --authenticationDatabase=admin

3.3 其他相关命令

//更新用户角色,修改用户权限,不会覆盖原权限信息,只新增权限:

bash 复制代码
db.updateUser("root",{roles:[{role:"readWrite",db:"admin"}]})

//更新用户密码

bash 复制代码
db.changeUserPassword("root","1234567")

//查看所有用户

bash 复制代码
show users

//删除用户

bash 复制代码
 db.dropUser("root")

1.查看数据库(非admin数据库的用户不能使用数据库命令)

bash 复制代码
show dbs

2.查看当前所在库:db

3.切换数据库:use name

4.创建数据库: 不会主动创建,切换数据库创建文档会保存库,只切换库不创建文档不会保存库。

5.创建集合:db.createCollection('lijia')

  1. 查看集合:show tables

7.插入数据: db.集合.insert({key:value})

8.查询数据:db.集合.find()

9.删除集合:db.lijia.drop()

10.删除数据库:db.dropDatabase() 注:(我是root权限,进入库后删除)

11.查询集合中有多少文档:db.集合.count()

相关推荐
S1998_1997111609•X2 小时前
论当今社会主义与人文关怀人格思想下的恶意仿生注入污染蜜罐描述进行函数值非法侵入爬虫的咼忄乂癿〇仺⺋.
数据库·网络协议·百度·ssh·开闭原则
倔强的石头_3 小时前
kingbase备份与恢复实战(六)—— 备份自动化与保留策略:Windows任务计划+日志追溯
数据库
轻刀快马4 小时前
别被 ORM 框架宠坏了:从一场“订单消失”悬案,看懂 MySQL 为什么要强推 InnoDB
数据库·mysql
后端漫漫6 小时前
Redis 客户端工具体系
数据库·redis·缓存
PaperData7 小时前
1988-2025年《中国人口和就业统计年鉴》全年份excel+PDF
数据库·人工智能·数据分析·经管
星河耀银海7 小时前
C语言与数据库交互:SQLite实战与数据持久化
c语言·数据库·sqlite·交互
过期动态8 小时前
MySQL中的约束
android·java·数据库·spring boot·mysql
程序员陆通8 小时前
月烧 400 刀到不到 20 刀:我是怎么把 OpenClaw 的 Token 账单砍掉 95% 的
java·前端·数据库
Shan12058 小时前
站在计算机领域视角看:SQL注入攻击
网络·数据库·sql
轻刀快马8 小时前
别干背八股文了:从一场“双十一秒杀”惨案,看懂 InnoDB 事务、锁与索引的底层齿轮
数据库·sql