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()

相关推荐
初听于你15 分钟前
高频面试题解析:算法到数据库全攻略
数据库·算法
BTU_YC6 小时前
Neo4j查询计划完全指南:读懂数据库的“执行蓝图“
数据库·neo4j
非极限码农6 小时前
Neo4j图数据库上手指南
大数据·数据库·数据分析·neo4j
mit6.8247 小时前
[C# starter-kit] 命令/查询职责分离CQRS | MediatR |
java·数据库·c#
苏打水com7 小时前
数据库进阶实战:从性能优化到分布式架构的核心突破
数据库·后端
shan~~8 小时前
linux达梦数据库操作
linux·数据库·chrome
武文斌779 小时前
项目学习总结:LVGL图形参数动态变化、开发板的GDB调试、sqlite3移植、MQTT协议、心跳包
linux·开发语言·网络·arm开发·数据库·嵌入式硬件·学习
CoderIsArt9 小时前
SQLite架构
数据库·sqlite
lixora9 小时前
银河麒麟高级服务器操作系统(ADM64 版)V10(SP1)搭建 Oracle 19c RAC
数据库
郝学胜-神的一滴9 小时前
使用Linux的read和write系统函数操作文件
linux·服务器·开发语言·数据库·c++·程序人生·软件工程