来自远程节点的 mongodump - 无法使用机制“SCRAM-SHA-256”进行身份验证

Sur*_*off 2 mongodb mongodump

尝试从远程节点进行转储并收到以下错误:

失败:无法创建会话:无法连接到服务器:connection():身份验证错误:sasl 对话错误:无法使用机制“SCRAM-SHA-256”进行身份验证:(身份验证失败)身份验证失败。

错误截图

尝试了两种方法从远程节点获取转储。但是在这两种方法中都出现了相同的错误。

# Method 1
mongodump -h remoteip@port -u xxx -p xxx --db xxx --authenticationDatabase xxx

# Method 2
mongodump --uri "mongodb://username:password@remoteip:port/db?authSource=xxx"
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题?

小智 7

我遇到过同样的问题。就我而言,密码包含特殊字符。它使用单引号作为密码:

-p 'my_password'
Run Code Online (Sandbox Code Playgroud)


mme*_*mey 6

对我来说(尝试在同一主机上的单个节点数据库上使用 mongodump ),使用 --authenticationDatabase admin做到了:

mongodump -u root --password 'secret' --authenticationDatabase admin -d mongo-dev -o /tmp/dump-2020-11-27.bson


(由远程节点mongodump提供- 无法使用机制“SCRAM-SHA-256”进行身份验证

  • 我相信这是正确的答案。您需要使用 `--authenticationDatabase` 指定 authSource (4认同)

小智 6

1.如果您使用 mongodump 命令的 URI,--authenticationDatabase admin选项相当于?authSource=admin

mongodump --uri "mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]"
Run Code Online (Sandbox Code Playgroud)

示例网址:

mongodump --uri "mongodb+srv://username1:password1@host1/db1?authSource=admin" 
Run Code Online (Sandbox Code Playgroud)