一、工具准备
对MongoDB进行导入导出、备份恢复等操作时需要用到命令工具,我们要先检查一下MongoDB安装目录下是否有这些工具,正常情况下是没有的:),因为新版本的MongoDB安装时不包含这些工具,需要我们手动下载安装。下载成功之后直接解压缩,然后把解压缩后bin目录中的文件拷贝到MongoDB安装路径下的bin目录即可。
官方网站下载链接:MongoDB Command Line Database Tools Download
二、MongoDB数据备份与恢复
MongoDB数据库工具文档:MongoDB数据库工具 - 官方中文
1、mongodump数据备份
mongodump --host="localhost:27017" --readPreference=secondary --gzip -u="admin" -p="admin123" --authenticationDatabase=admin --archive=C:\test
mongodump --host="localhost:27017" --readPreference=secondary --gzip -u="admin" -p="admin123" --authenticationDatabase=admin --archive=C:\test\archive-2024112001.gz
- --gzip指备份文件会被压缩成.gz格式
- --archive指备份文件的存放路径,如果参数值是路径,备份文件会被命名为archive.gz,如果多次执行mongodump命令备份文件仅保留最新的结果
- --archive指备份文件的存放路径,如果参数值指向一个文件,备份文件会被命名为指定名称,如果多次执行mongodump命令备份文件仅保留最新的结果(若想保存多个的备份文件,要设置不同的文件名)
2、mongorestore数据恢复
mongorestore --gzip --drop --preserveUUID --authenticationDatabase=admin --archive="C:\test\archive.gz" --host="localhost:27017" -u="admin" -p="admin123"
mongorestore --gzip --nsInclude="performance-dms-maxwell-perf-analyzer.*" --nsInclude="performance-dms-similar-well.*" --drop --preserveUUID --authenticationDatabase=admin --archive="C:\test\archive.gz" --host="localhost:27017" -u="admin" -p="admin123"
- --gzip指从.gz文件进行恢复
- --nsInclude指要恢复哪些Database、Collection,不手动指定表示恢复所有Database和Collection(一个命令可以指定多个--nsInclude)
- --db指要恢复哪些Database(一个命令可以指定一个--db)
- --collection指要恢复哪些Collection
- --drop指先清空现有数据再恢复
3、备份和恢复单库
mongodump --db="performance-dms-iaplan-recommendation" --out="C:\test"
mongorestore --drop --db=performance-dms-iaplan-recommendation-local --dir="C:\test\performance-dms-iaplan-recommendation"
- mongodump中的--db指要把哪个数据库进行备份
- mongorestore中的--db指要把备份的数据恢复到哪个库中
- mongodump --db="db01" --out="C:\test"执行完毕后会创建"C:\test\db01"目录,db01中的所有Collection都在目录中
三、MongoDB用户管理
1、创建用户
javascript
// 切换到admin数据库
use admin
db.createUser({
user: "admin",
pwd: "admin123",
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" }
]
})
2、查看用户
javascript
//切换到admin数据库
use admin
show users
3、修改用户密码
javascript
//切换到admin数据库
use admin
db.changeUserPassword("admin", "newpassword")
4、删除用户
javascript
//切换到admin数据库
use admin
db.dropUser("admin")
四、常见问题
1、unable to authenticate using mechanism "SCRAM-SHA-1": (AuthenticationFailed) Authentication failed.