linux CentOS7 使用yum安装mongodb4.4数据库,以及mongodb数据库中新建用户,增删改查,和备份恢复操作


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


提示:以下是本篇文章正文内容,下面案例可供参考

一、mongodb介绍

mongodb是一个nosql数据库,它有高性能、无模式、文档型的特点。是nosql数据库中功能最丰富,最像关系数据库的。数据库格式为BSON

应用场景:游戏 物流 社交 物联网 视频直播 大数据

二、操作步骤

yum安装mongodb

在/etc/yum.repos.d/下创建mongodb-org.repo

vim /etc/yum.repos.d/mongodb-org.repo

 写入

[mongodb-org] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/ gpgcheck=1

enabled=1

gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc

yum clean #清空yum缓存

yum list #展开yum列表

yum make cache #建立缓存

 安装mongodb

 yum -y insyall mongodb-org

 启动mongodb

 systemctl start mongod

 登录mongodb

 mingo

由于mongodb不用主动创建,使用use 库,会自动创建不存在的数据库,只有在库中创建文档后才会保存,所以我们直接 use jx(库名)

创建库,合集,插入文档,增删改查操作

 在jx库中创建“ban”合集

 db.createCollection("ban")

  

 在“ban”合集中创建文档

db.ban.insertMany([{name:"zhang",age:20},{name:"li",age:30}])

  再查看库,jx库已经存在了

show dbs

 再看看合集

show tables

 

 查询文档数据

 全集合查询

 db.ban.find()

 条件查询

db.ban.find({name:"zhang"}) 

 更新文档数据

 更新数据

db.ban.update({name:"zhang"},{$set:{age:"31"}})

 所有满足条件的文档数据都进行更新

db.ban.updateMany({age:30},{$set:{age:22}})

 更新文档进行数值递增

 db.ban.update({name:"wu"},{$inc: {age:1}})

删除文档数据,合集,库

条件删除文档数据

db.ban.remove({name:"wu"})

 全文删除文档数据

db.ban.remove({})

 删除合集

db.ban.drop()

 这边可以看到库里没有数据后,jx库就查不到了

 删除库,必须先进入库这里就不演示了,下面是执行语句

usr jx

db.dropdatabase()

备份以及恢复数据库

 现在我们库结构如下图

 mongodump备份与 mongorestore恢复

 mongodump备份

mongodump -h127.0.0.1 -djx -o/backup/dump/

 可以看到生成了bson数据文件和json元数据文件(元数据描述了数据库和集合的结构和状态,包括集合的索引、存储引擎、文档数量、大小等等。)

 mongorestore恢复

现在我们删除ban1合集,再恢复

mongoresore -h127.0.0.1 -djx  -cban1 -o/backup/jx/ban1.bson

 可以看到ban1已经恢复了

 --drop 当目标数据库中存在同名集合则删除再恢复

 我们在ban1中插入一条数据再恢复

 mongorestore -h127.0.0.1 djx -cban1 --drop/backup/jx/ban1.bson

mongoexport备份与mongoimport恢复

mongoexport备份 

mongoevport -h127.0.0.1 -djx  -cban1 -o /backup/export/jx_ban1.json 

 mongoimport恢复

我们现在删除ban1,再恢复

db.ban1.drop 

恢复 

 mongoimport -h127.0.0.1 -djx -cban1 /backup/export/jx_ban1.json

 mongodump和mongoexport区别

 

功能mongodumpmongoexport
导出文件格式BSON 格式JSON、CSV 或 TSV
导出的数据所有数据库或指定的数据库单个集合或指定的查询结果
数据筛选通过参数筛选可选可以通过查询作为筛选条件
导出位置存储在指定的目录中写入到指定文件中
数据转换提供一些选项用于数据转换提供 JSON 的格式化输出选项
数据大小大多数情况下,只适用于小型和中型数据集适用于小型、中型和大型数据集,但需要注意性能问题

mongodump 和 mongoexport 是不同的工具,它们各有不同的用途。在备份 MongoDB 数据时,mongodump 是更合适的选择,而当需要将 MongoDB 数据导出到其他数据格式或进行分析时,mongoexport 更合适。

创建管理用户和普通用户

 创建管理用户 ,由于mongo的管理用户是内置角色,所以我们必须创一个内置角色的用户

  1. read:允许用户查找和读取特定数据库中所有或部分数据。

  2. readWrite:允许用户查找、读取以及插入、更新和删除特定数据库中的所有或部分数据。

  3. dbAdmin:允许用户管理特定数据库的资源,包括集合和索引。但无法查看或修改数据。

  4. userAdmin:允许用户创建、修改和删除该数据库中的其他用户。

  5. dbOwner:允许用户对特定数据库进行所有操作,包括读、写、修改数据库配置等。

  6. clusterAdmin:允许用户管理整个 MongoDB 集群,包括启动、停止节点、重新配置复制集和分片群集、管理备份和还原等。

  7. backup:允许用户备份特定 MongoDB 实例的数据。

  8. restore:允许用户还原特定 MongoDB 实例的数据。

  9. root:拥有对 MongoDB 实例进行管理操作的所有权限。此角色只应该给 MongoDB 系统管理员使用。

 这边创建一个root超级管理员用户

use admin

db.createUser(

{

user: "root",

pwd: "123.com",

roles: [ { role: "root", db: "admin" } ]

}

)

  MongoDB 的身份验证默认是关闭的,可以通过修改 mongod 的配置文件实现登录时密码验证

在etc/mongod。conf的security区域加上 然后重启服务

  authorization: enabled

 systemctl resatrt mongod

现在在直接登录就不行了

 root登录

mongo admin -uroot -p 

创建普通用户

创建一个只有对jx库有所有权限的用户

use jx

db.createUser(

{

user: "jxuser",

pwd: "123.com",

roles: [ { role: "dbOwner", db: "jx" } ]

}

)

 登录

mongo jx -ujxuser -p

 可以看到只能看到jx库

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值