MongoDB配置库、本地库备份失败,持root和backup角色仍认证失败如何解决?
MongoDB备份config、local库认证失败问题解决方案
根本原因
- MongoDB用户与创建时所在的数据库(认证源)绑定,你现有
root用户是在admin库下创建的,认证操作必须指定admin作为认证源。你之前操作时指定config为认证源,系统无法在config库下找到对应用户,因此触发认证失败报错,和backup角色的权限无关。 root、backup属于MongoDB内置全局角色,仅存在于admin库中,因此你尝试在config库下创建绑定root角色的用户时,会提示角色不存在。
正确操作步骤
1. 单独备份config、local库
直接使用现有admin库下的root用户,指定认证源为admin即可,无需额外创建用户:
# 备份config库(交互输入密码,避免密码泄露) mongodump --host localhost --port 27017 -u root -d config --authenticationDatabase admin # 备份local库 mongodump --host localhost --port 27017 -u root -d local --authenticationDatabase admin
如果要在命令行直接传入密码,使用以下格式即可:
mongodump --uri="mongodb://root:你的密码@localhost:27017/config?authSource=admin"
2. 登录config库的正确命令
同样指定认证源为admin即可正常登录:
/home/mongo/mongodb/bin/mongo localhost:27017/config -u root -p --authenticationDatabase admin
执行后输入密码即可完成登录。
3. 全量备份所有库
如果需要备份整个实例的所有库(包含admin、config、local),可以直接使用全量备份命令,无需单独拆分备份每个库:
mongodump --host localhost --port 27017 -u root --authenticationDatabase admin -o 本地备份目录路径
你现有root用户已经配置了root、backup角色,完全满足全量备份的权限要求,不需要额外调整权限配置。
内容的提问来源于stack exchange,提问作者Ravai
相关产品推荐
相关产品推荐

