MongoDB数据备份与恢复以及安全认证

与其他数据库一样,MongoDB提供了数据备份和恢复以及数据导入导出的功能,在MongoDB安装目录的bin目录下有,有以下exe文件,下面我们主要使用这些工具:
在这里插入图片描述

一、数据备份与恢复

数据的备份与恢复主要使用到mongodump.exe和mongorestore.exe这两个工具。

数据备份

mongodump -h dbhost -d dbname -o dbdirectory
-h:MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017
-d:需要备份的数据库实例,例如:test
-o:备份的数据存放位置,例如:c:\data\dump,当然该目录需要提前建立,在备份完成后,系统自动在dump目录下建立一个test目录,这个目录里面存放该数据库实例的备份数据。
#实例:
 mongodump -h localhost -d test -o F:\BaiduNetdiskDownload\bak

运行上面命令备份test数据库到F:\BaiduNetdiskDownload\bak目录下,结果如下所示:
在这里插入图片描述

在这里插入图片描述

数据的恢复

mongorestore -h dbhost -d dbname -directoryperdb dbdirectory
-h:MongoDB所在服务器地址
-d:需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2
-directoryperdb:备份数据所在位置,例如:c:\data\dump\test

数据的导出

mongoexport -h dbhost -d dbname -c collectionName -o output
参数说明:
-h  数据库地址
-d 指明使用的库
-c 指明要导出的集合
-o 指明要导出的文件名

实例:

mongoexport -h localhost -d test -c t1 -o F:\BaiduNetdiskDo
wnload\export\t1.txt

导出test数据库中的t1集合,结果如下:
在这里插入图片描述

导出数据格式如下:
在这里插入图片描述

需要注意的是:dump出的数据是bson的二进制数据,export的数据是可读的json数据格式。

数据的导入
命令如下:

mongoimport -h dbhost -d dbname -c collectionname output 

参数说明:
-h  数据库地址
-d 指明使用的库
-c 指明要导入的集合

二、安全认证

每个MongoDB实例可以添加多个用户。如果开启了安全认证,则只有数据库认证的用户才有读写数据库的权限。在认证的上下文中,admin数据库中的用户被视为超级用户(即管理员)。在认证之后,管理员可以读写所有数据库,执行特定的管理命令,如listDatabases和shutdown。在开启安全检查之前,一定要至少有一个管理员账号。

首先进入admin数据库中,可以使用addUser命令添加admin用户:

> db.addUser("root","root")
WARNING: The 'addUser' shell helper is DEPRECATED. Please use 'createUser' instead
Successfully added user: { "user" : "root", "roles" : [ "root" ] }

结果如下,添加管理员成功:
在这里插入图片描述

进入test数据库,添加普通用户:

> use test
switched to db test
> db.addUser("shinelon","123456")
WARNING: The 'addUser' shell helper is DEPRECATED. Please use 'createUser' instead
Successfully added user: { "user" : "shinelon", "roles" : [ "dbOwner" ] }
> db.addUser("lisi","123456",true)    #true表示只读,该用户只有读权限

此时,我们已经添加了一个管理员和一个普通用户,这时可以开启安全认证,先退出此次服务。

重新启动MongoDB服务器,使用下面命令开启安全检查:

mongod --dbpath d:\mongo_data --auth

如果你是使用配置文件启动,可以在配置文件中添加:

auth=true

增加安全认证,然后启动mongodb客户端。
当连接了客户端后,只能使用db命令查看在哪个数据库中,没有执行其他命令的权限,可以使用db.auth命令来通过安全认证,如下所示:
在这里插入图片描述
也可以进入admin数据库中进行管理员安全认证,管理员可以操作任何数据做任何操作,如下所示:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值