docker安装mongoDB及使用

本文详细介绍了如何使用Docker安装MongoDB,包括数据库概念、MongoDB的特点与Redis和MySQL的对比,以及数据持久化和安全设置。此外,还涉及了在Docker容器中创建用户和连接数据库的操作步骤。
摘要由CSDN通过智能技术生成

docker安装mongoDB及使用
概述:
 
1.    mongo中的集合相当于mysql中表的概念;
2.    mongo中的文档相当于mysql中行的概念;
3.    mongo中的域相当于mysql中字段/列的概念;
2. mongoDB的特点(或使用场景)
1.    支持存储海量数据;(例如:直播中的打赏数据);
2.    支持频繁的数据读写;(例如:游戏道具);
3.    数据安全性不高,存在数据误差(丢失数据);
4.    mongoDB不支持多表操作,不支持事务;
5.    mongoDB使用Bson存储格式,支持动态字段管理;
3. mongoDB与mysql、redis对比
与redis对比
1. redis纯内存数据库,内存不足时触发淘汰策略,mongoDB使用内存加磁盘的存储策略具有高扩展性;
2. mongoDB使用Bson存储格式,支持动态字段管理方便扩展;
与mysql对比
1. mongoDB不支持多表操作,不支持事务;
2. mongoDB使用Bson存储格式,支持动态字段管理;
查询效率对比
Redis > MongoDB > MySQL
4. mongoDB存储原理
 
mongoDb采用内存加磁盘的方式存储数据;
mongoDb支持数据分片,当单一的服务器中磁盘不够用的时候,还可以串联其他服务器;
客户端的请求到达内存时,先在日志中记录下操作记录,然后再去操作内存;
内存中的日志每10ms向磁盘中的日志进行同步一次,数据则每分钟同步一次;
客户端先去内存中查询数据,内存中没有再去查询磁盘;
当客户端写入的时候,会先写入到内存中,内存中写入后请求直接返回,内存中的数据会根据同步策略同步到磁盘;
如果机器宕机,在重启服务的时候会解析磁盘中的日志和磁盘中的数据进行对比,将未入到磁盘中的数据写入磁盘,但可能会丢失10ms的数据;

二、使用docker安装mongo
1.安装
1.    拉取mongo镜像   docker pull mongo:4.4
2.    创建mongo数据持久化目录 mkdir -p /docker_volume/mongodb/data
3.    运行容器 
docker run -itd --name mongo -v /docker_volume/mongodb/data:/data/db -p 27017:27017 mongo:4.4 –auth
运行后报错 修改了防火墙配置,打开防火墙
 
解决方案 重启docker 容器  成功启动 mongodb
systemctl restart docker
 
-v: 将宿主机的/docker_volume/mongodb/data映射到容器的/data/db目录,将数据持久化到宿主机,以防止删除容器后,容器内的数据丢失
–auth:需要密码才能访问容器服务
2.创建用户
登录mongo容器,并进入到【admin】数据库
 docker exec -it mongo mongo admin
 

创建一个用户,mongo 默认没有用户
db.createUser({ user:'root',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},'readWriteAnyDatabase']});

【user:‘root’ 】:设置用户名为root
【pwd:‘123456’】:设置密码为123456
【role:‘userAdminAnyDatabase’】:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
【db: ‘admin’】:可操作的数据库
【‘readWriteAnyDatabase’】:赋予用户读写权限

dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile

3. 连接、测试
连接mongo数据库
db.auth('root', '123456')

测试数据库,插入一条语句
 db.user.insert({"name":"zhangsan","age":18})

测试数据库,查询刚才插入的语句
 db.user.find()

 
结束

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值