我正在尝试使用Mongo Atlas Cloud。我创建了一个集群,我正在尝试与mongo shell建立连接:(与mongo驱动程序相同的问题)
mongo mongodb://***-cluster-shard-00-00-***.mongodb.net:27017,***-cluster-shard-00-01-***.mongodb.net:27017,***-cluster-shard-00-02-***.mongodb.net:27017/any_database?replicaSet=****-Cluster-shard-0 --ssl --username ***** --password *****
这是文档中的连接字符串。这就是错误:
MongoDB shell version: 3.2.7
connecting to: mongodb://***-cluster-shard-00-00-***.mongodb.net:27017,***-cluster-shard-00-01-***.mongodb.net:27017,***-cluster-shard-00-02-***.mongodb.net:27017/any_database?replicaSet=***-Cluster-shard-0
2016-07-07T01:31:17.535-0300 I NETWORK [thread1] Starting new replica set monitor for ***-Cluster-shard-0/***-cluster-shard-00-00-***.mongodb.net:27017,***-cluster-shard-00-01-***.mongodb.net:27017,***-cluster-shard-00-02-***.mongodb.net:27017
2016-07-07T01:31:17.535-0300 I NETWORK [ReplicaSetMonitorWatcher] starting
2016-07-07T01:31:20.084-0300 E QUERY [thread1] Error: Authentication failed. :
DB.prototype._authOrThrow@src/mongo/shell/db.js:1441:20
@(auth):6:1
@(auth):1:2
exception: login failed
我只能在使用admin database" / admin?"时连接到数据库。在连接字符串中。
问题:
我需要使用控制台或mongo驱动程序连接到自定义数据库。
PD:我使用" ***"
保护我的数据答案 0 :(得分:14)
您使用admin数据库进行身份验证。从那里你可以切换数据库。
使用Mongo驱动程序连接时,您的连接字符串需要添加auth源:
/any_database?authSource=admin&replicaSet=xyz
答案 1 :(得分:8)
添加到Nath的答案,如果您通过mongo shell进行连接并使用“authSource = admin”作为驱动程序,请使用“--authenticationDatabase admin”。
使用[MongoDB shell版本:3.2.8]进行测试
答案 2 :(得分:2)
for(var i=1;i<5;i++)
{
var btn = document.createElement("button");
btn.innerText = "button"+i;
btn.setAttribute("id", i);
document.body.appendChild(btn);
btn.onclick = function(){
alert(this.id);
}
}
是所有Atlas连接的要求。
答案 3 :(得分:0)
我也面临着同样的问题。创建数据库时将创建“ admin”用户。如果您忘记了默认管理员用户的密码,那么很难与数据库连接并访问集合。
您可以在“安全性->数据库访问”部分下再创建一个数据库用户,然后选择“ Atlas admin”作为角色。
如果您的密码包含任何特殊字符,则将在内部对其进行加密。因此,请使用此链接(https://www.urlencoder.org/)加密密码(纯文本),并使用加密的字符串建立连接。