【发布时间】:2019-08-11 15:13:30
【问题描述】:
我正在尝试从 java 连接到 mongodb atlas 集群,出现以下错误:
Caused by: com.mongodb.MongoCommandException: Command failed with error 8000 (AtlasError): 'Authentication failed.' on server cluster0-shard-00-00-wgrdw.gcp.mongodb.net:27017. The full response is {"ok": 0, "errmsg": "Authentication failed.", "code": 8000, "codeName": "AtlasError"}
at com.mongodb.internal.connection.ProtocolHelper.getCommandFailureException(ProtocolHelper.java:179)
at com.mongodb.internal.connection.InternalStreamConnection.receiveCommandMessageResponse(InternalStreamConnection.java:299)
at com.mongodb.internal.connection.InternalStreamConnection.sendAndReceive(InternalStreamConnection.java:255)
at com.mongodb.internal.connection.CommandHelper.sendAndReceive(CommandHelper.java:83)
at com.mongodb.internal.connection.CommandHelper.executeCommand(CommandHelper.java:33)
at com.mongodb.internal.connection.SaslAuthenticator.sendSaslStart(SaslAuthenticator.java:130)
at com.mongodb.internal.connection.SaslAuthenticator.access$100(SaslAuthenticator.java:40)
at com.mongodb.internal.connection.SaslAuthenticator$1.run(SaslAuthenticator.java:54)
... 23 more
我的地图集配置:
- 用户:admin,密码:...
- ip 白名单:0.0.0.0/0(用于测试目的)
- mongodb版本:4.0.6
- java驱动:
implementation (group: 'org.mongodb', name: 'mongo-java-driver', version: '3.10.1')
Java 代码:
List<ServerAddress> seeds = new ArrayList<>();
seeds.add(new ServerAddress("cluster0-shard-00-00-wgrdw.gcp.mongodb.net", 27017));
seeds.add(new ServerAddress("cluster0-shard-00-01-wgrdw.gcp.mongodb.net", 27017));
seeds.add(new ServerAddress("cluster0-shard-00-02-wgrdw.gcp.mongodb.net", 27017));
MongoCredential credential = MongoCredential.createCredential(USER, "vehicle-data", PWD.toCharArray());
MongoClientOptions.Builder builder = new MongoClientOptions.Builder();
//build the connection options
builder.maxConnectionIdleTime(60000);//set the max wait time in (ms)
builder.sslEnabled(true);
MongoClientOptions opts = builder.build();
MongoClient mongoClient = new MongoClient(seeds, credential, opts);
MongoDatabase database = mongoClient.getDatabase("vehicle-data");
MongoCollection<Document> segments = database.getCollection("road-segments");
// Delete All documents from collection Using blank BasicDBObject
segments.deleteMany(new BasicDBObject());
有人知道我错过了什么吗?
【问题讨论】:
-
也许检查一下它可能会有所帮助jira.mongodb.org/browse/JAVA-2817
标签: mongodb mongodb-atlas