Mongo Atlas:自定义数据库

时间:2016-07-07 04:44:00

标签: node.js mongodb mongoose

我正在尝试使用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:我使用" ***"

保护我的数据

4 个答案:

答案 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/)加密密码(纯文本),并使用加密的字符串建立连接。