我试图通过连接器连接到MongoDB,得到一个“未授权”的错误。
同样的连接细节也适用于Python,并且能够检索数据。
任何建议都会有帮助。
错误:
来自工作人员的CESTError消息: com.mongodb.MongoCommandException:命令失败,错误13 (未经授权):‘在test dev上未授权执行命令{ splitVector:“test dev.tasklog”,keyPattern:{ _id: 1 },force: false,maxChunkSize: 21,$db:“test dev”,$clusterTime:{ clusterTime:时间戳(1624463948,23),签名:{散列: BinData(0,C92C5EEC1265B01EDB9B51DFC24BAB98D85EAE0D),keyId: 6911535624117813250 } },$readPreference:{ id: UUID("05eedc7a-f719-49b5-8c53-3d520dc772c4") },服务器172.29.156.26:27017上的{primaryPreferred}}。完整响应为{ "operationTime“:{ "$timestamp”:{ "t“:1624463948,"i”:31 },"ok“:0.0,"errmsg”:“在test-direkt-dev上未授权执行命令{ splitVector:”splitVector:“test dev.tasklog”,keyPattern:{ _id: 1 },force: false,maxChunkSize: 21,$db:"test-direkt-dev",$clusterTime:{ clusterTime:时间戳(1624463948,23),签名:{散列: BinData(0,C92C5EEC1265B01EDB9B51DFC24BAB98D85EAE0D),keyId: 6911535624117813250 },lsid:{ id: UUID("05eedc7a-f719-49b5-8c53-3d520dc772c4") },$readPreference:{ mode:"primaryPreferred“},"code”:13,"codeName“:”未经授权“,"$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
如果使用用户名:/database@语法,则需要传递数据库名“名称”。
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) at 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”:“验证失败”,“代码”:18,"codeName“:"AuthenticationFailed","$clusterTime”:{ "clusterTime“:{ "$timestamp”:{ "t“:1624636024,"i”:24 }}。“签名”:{“散列”:{ "$binary“:"8a1nBS/Wmd5z1SHqhLKnW7Y/g7I=","$type”:"00“},"keyId”:{ "$numberLong“:"6911535624117813250”}}}
发布于 2021-06-23 17:56:08
如果同样的细节在Python中有效,我建议使用重现问题的步骤来创建一个bug。我没有找到Java的MongoDbIO中存在的任何bug。有关如何提交bug的信息,请参见https://beam.apache.org/community/contact-us/。
发布于 2021-06-24 02:22:11
splitVector是一个不应该从驱动程序调用的MongoDB内部命令。
https://stackoverflow.com/questions/68103589
复制相似问题