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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_37142346/article/details/82822726

与其他数据库一样,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数据库中进行管理员安全认证,管理员可以操作任何数据做任何操作,如下所示:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_37142346/article/details/82822726