Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB:不支持普通方法_Mongodb_Hibernate - Fatal编程技术网

MongoDB:不支持普通方法

MongoDB:不支持普通方法,mongodb,hibernate,Mongodb,Hibernate,当我试图部署我的战争神器时,我得到了这个信息。我的应用程序正在使用hibernate ogm,并且在部署时尝试构建持久性上下文。我得到的信息是: org.hibernate.service.spi.ServiceException:OGM000071:无法启动数据存储提供程序原因:org.hibernate.service.spi.ServiceException:OGM000071:无法启动数据存储提供程序原因:org.hibernate.HibernateException:OGM00121

当我试图部署我的战争神器时,我得到了这个信息。我的应用程序正在使用hibernate ogm,并且在部署时尝试构建持久性上下文。我得到的信息是:

org.hibernate.service.spi.ServiceException:OGM000071:无法启动数据存储提供程序原因:org.hibernate.service.spi.ServiceException:OGM000071:无法启动数据存储提供程序原因:org.hibernate.HibernateException:OGM001214:无法连接到MongoDB实例:等待运行的服务器时,30000毫秒后超时匹配ReadPreferenceServerSelector{readPreference=primary}。群集状态的客户端视图为{type=UNKNOWN,servers=[{address=mongo:27017,type=UNKNOWN,state=CONNECTING,exception={com.mongodb.MongoSecurityException:exception authentication mongordentication{mechanism=PLAIN,userName='living',source lvdb',password=,mechanismProperties={}},由{com.mongodb.MongoCommandException:命令失败,错误为2:“服务器mongo:27017上的不支持的普通机制”。完整响应为{\'supportedMechanisms\':[\'mongodb-CR\',\'mongodb-X509\',\'SCRAM-SHA-1\'],\'ok\':0.0,\'errmsg\':'不支持的普通机制\',\'code\':2,\'code name\':'BadValue\'}]原因:com.mongodb.MongoTimeoutException:等待与ReadPreferenceServerSelector{readPreference=primary}匹配的服务器时,30000毫秒后超时。群集状态的客户端视图为{type=UNKNOWN,servers=[{address=mongo:27017,type=UNKNOWN,state=CONNECTING,exception={com.mongodb.MongoSecurityException:验证MongoCredential{mechanism=PLAIN,userName='living',source='lvdb',password=,mechanismProperties={}}}的异常,由{com.mongodb.MongoCommandException:命令失败引起,服务器mongo:27017上出现错误2:'Unsupported mechanism PLAIN'。完整响应为{\“supportedMechanisms\”:[\“MONGODB-CR\”、“MONGODB-X509\”、“SCRAM-SHA-1\”]、“ok\”:0.0、“errmsg\”:“不支持的普通机制\”、“代码\”:2、““代码名\”:“BadValue\”}}}}}}


要使用其他机制,我需要做什么?

您必须指定hibernate.ogm.mongodb.authentication\u机制的属性
(请参阅)


您希望使用哪种身份验证机制?我们可能还不支持它,但如果您让我们知道您的偏好,我们可以尝试让它快速工作。

对于MongoDB,默认支持的机制是“SCRAM-SHA-1”。因此,在连接时,您需要指定此机制。我在连接到Mong时看到了相同的错误虽然我没有为mongo做任何特殊的配置,但我要尝试的第一个明显的选择是简单的身份验证机制。最后,使用SCRAM-SHA-1解决了这个问题。 对于Spring数据,代码如下所示:

MongoCredential mongoCredential = MongoCredential.createScramSha1Credential(mongoUser, mongoDB, mongoPass.toCharArray());

希望这有帮助。

据我所知,mongodb上有三种身份验证机制(
用户:密码
使用X509证书
,以及使用第三种
kerberos
).我必须说,我们使用的是一个
用户:密码
,因此我可以使用mechanism
PLAIN
SCRAM-SHA1
CR
。我可以使用
db.auth()进行身份验证
然而,在mongodb shell上,当我尝试使用mongo驱动程序或hibernate ogm对用户进行身份验证时,我不太明白失败的原因。