使用mongodump备份MongoDB时认证失败,求解决方案
MongoDB备份认证失败问题排查方案
可能的原因及解决步骤
确认用户名密码准确性
先用mongo客户端带完整认证参数测试连接:mongo "mongodb://1XX.XXX.XX.XXX:27017" -u username -p password --authenticationDatabase admin若仍失败,登录MongoDB服务器端检查用户状态:
use admin db.getUser("username") // 查看用户是否存在、所属数据库及权限核对认证数据库
若用户并非在admin库创建,需替换--authenticationDatabase的值为用户所属数据库。比如用户在业务库mydb下创建,命令改为:mongodump --uri="mongodb://username:password@1XX.XXX.XX.XXX:27017" --authenticationDatabase mydb检查网络连通性
验证本地机器到MongoDB服务器27017端口是否开放:nc -zv 1XX.XXX.XX.XXX 27017若不通,调整服务器防火墙规则,允许本地IP访问该端口。
匹配客户端与服务器版本
本地mongodump/mongo客户端版本与服务器端差异过大,可能导致SCRAM认证机制不兼容。尽量保持两端版本一致。确认用户备份权限
确保用于备份的用户拥有backup角色或足够权限,服务器端执行:use admin db.grantRolesToUser("username", [{ role: "backup", db: "admin" }])改用拆分参数形式
避免URI中特殊字符转义问题,尝试拆分参数执行:mongodump --host 1XX.XXX.XX.XXX:27017 --username username --password password --authenticationDatabase admin
内容的提问来源于stack exchange,提问作者Sophia BOUKAIBA
相关产品推荐
相关产品推荐

