问题描述
我尝试使用Talend Big数据解决方案连接到MongoDB。 在“元数据”部分下,我使用“ Nosql Connection”选项创建了一个新连接,如下所示。 我的MongoDb版本是4.2,没有选项,但3.5.X选项应该适用于3.5和更高版本。 我在服务器文本框中添加了服务器IP,甚至尝试添加特定的数据库名称。用户名和密码正确。但是当我单击“检查”按钮以测试连接时,仍然无法显示Athentication错误-
“连接失败!
org.talend.repository.nosql.exceptions.NosqlServerException:无法连接到数据库!
在org.talend.repository.nosql.db.util.mongodb.MongoDBConnectionUtil.checkConnection(MongoDBConnectionUtil.java:86)
在org.talend.repository.nosql.db.provider.mongodb.MongoDBMetadataProvider.checkConnection(MongoDBMetadataProvider.java:156)
由以下原因引起:org.talend.repository.nosql.exceptions.NosqlServerException:org.talend.repository.nosql.exceptions.NosqlReflectionException:com.mongodb.MongoCommandException:命令失败,错误13(未授权):“ command listDatabases需要验证”。完整的响应为{“ ok”:0.0,“ errmsg”:“命令listDatabases需要身份验证”,“ code”:13,13,“ codeName”:“未经授权”}
在org.talend.repository.nosql.db.util.mongodb.MongoDBConnectionUtil.getDatabaseNames(MongoDBConnectionUtil.java:287)
在org.talend.repository.nosql.db.util.mongodb.MongoDBConnectionUtil.checkConnection(MongoDBConnectionUtil.java:56)“
我尝试通过下载cdata Jar文件来使用JDBC连接来连接它,它显示连接成功,但是我不使用jar文件的方式,我想知道上面的Nosql连接在做什么方法。
提前感谢所有帮助!
解决方法
也许缺少某些模块。至少这是我的问题,即使安装了mongo db 4.2,我也必须使用DB版本3.2.X。
如果没有安装任何mongo模块,请查看“模块”窗口(“窗口->显示视图-> Talend->模块”)。
,实际上,凭证没有正确的权限。我可以使用具有适当权限的正确凭据以相同的方式进行连接。道歉,让大家对此问题感到困惑。