【发布时间】:2021-09-07 05:31:52
【问题描述】:
我正在尝试通过 Java Apachebeam MongoDbIO 连接器连接到 MongoDB,收到“未授权”错误。
相同的连接详细信息适用于 Python,并且能够检索数据。
任何建议都会有所帮助
错误:
021-06-23 17:59:09.041 来自工作人员的 CESTError 消息:com.mongodb.MongoCommandException:命令失败,错误 13(未经授权):'未在 test-direkt-dev 上授权执行命令 { splitVector:“test -direkt-dev.taskLog", keyPattern: { _id: 1 }, force: false, maxChunkSize: 21, $db: "test-direkt-dev", $clusterTime: { clusterTime: Timestamp(1624463948, 23), 签名: { hash: BinData(0, C92C5EEC1265B01EDB9B51DFC24BAB98D85EAE0D), keyId: 6911535624117813250 } }, lsid: { id: UUID("05eedc7a-f719-49b5-8c53-3d520dc772c4") }, Prefer $"readPreference} on "primary"服务器 172.29.156.26:27017。完整的响应是 { "operationTime" : { "$timestamp" : { "t" : 1624463948, "i" : 31 } }, "ok" : 0.0, "errmsg" : "not authorized on test-direkt-dev to执行命令 { splitVector: "test-direkt-dev.taskLog", keyPattern: { _id: 1 }, force: false, maxChunkSize: 21, $db: "test-direkt-dev", $clusterTime: { clusterTime: Timestamp( 1624463948,23),签名:{哈希:BINDATA(0,C92C5EEC1265B01EDB9B51DFC244BAB98D85EAE0D),LSID:{ID:UUID(“05EDC7A-F719-49B5-8C53-3D520DC772C4”)},$ ReadPreference:{Mode: “primaryPreferred” } }”,“code”:13,“codeName”:“未授权”,“$clusterTime”:{“clusterTime”:{“$timestamp”:{“t”:1624463948,“i”:31} },“签名”:{“哈希”:{“$binary”:“ySxe7BJlsB7bm1HfwkurmNherg0=”,“$type”:“00”},“keyId”:{“$numberLong”:“6911535624117813250”}}}}
代码:
return pipeline.apply(MongoDbIO.read()
.withUri("mongodb://testuser:testpass1@88.200.92.195:27017")
.withDatabase("test-direkt-dev")
.withCollection("taskLog"));
感谢您的更新。
根据文档,
https://beam.apache.org/releases/javadoc/2.13.0/org/apache/beam/sdk/io/mongodb/MongoDbIO.Read.html
如果使用 username:password@ 语法,则需要传递数据库名称“/database name”。
return pipeline.apply(MongoDbIO.read()
.withUri("mongodb://testuser:testpass1@88.200.92.195:27017/test-direkt-dev")
.withDatabase("test-direkt-dev")
.withCollection("taskLog"));
这一次,我收到以下错误:
“org.apache.beam.sdk.io.mongodb.MongoDbIO$BoundedMongoDbSource.$closeResource(MongoDbIO.java:407) 在 org.apache.beam.sdk.io.mongodb.MongoDbIO$BoundedMongoDbSource.split(MongoDbIO. java:537) ... 15 更多原因:com.mongodb.MongoCommandException:命令失败,错误 18 (AuthenticationFailed):“身份验证失败。”在服务器 88.200.92.195:27017 上。完整的响应是 { "operationTime" : { "$timestamp" : { "t" : 1624636024, "i" : 24 } }, "ok" : 0.0, "errmsg" : "Authentication失败。”,“code”:18,“codeName”:“AuthenticationFailed”,“$clusterTime”:{“clusterTime”:{“$timestamp”:{“t”:1624636024,“i”:24}},“签名”:{“哈希”:{“$binary”:“8a1nBS/Wmd5z1SHqhLKnW7Y/g7I=”,“$type”:“00”},“keyId”:{“$numberLong”:“6911535624117813250”}}}}在”
【问题讨论】:
标签: java mongodb apache-beam dataflow