【问题标题】:Error while connecting to spring data with mongodb使用 mongodb 连接到 spring 数据时出错
【发布时间】:2016-10-14 13:25:11
【问题描述】:

org.springframework.data.mongodb.UncategorizedMongoDbException:查询失败,错误代码 13 和错误消息“未授权在其 admin.users 上查询”服务器 127.0.0.1:27017;嵌套异常是 com.mongodb.MongoQueryException:查询失败,错误代码 13 和错误消息“未授权在其 admin.users 上查询”服务器 127.0.0.1:27017

这是我的 spring-config.xml

<mongo:mongo id="myRs" host="localhost" port="27017" />
<mongo:db-factory dbname="itsadmin"  />


<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
    <property name="writeResultChecking" value="EXCEPTION"/>
    <property name="writeConcern" value="FSYNC_SAFE"/>
    <constructor-arg ref="myRs"/>
    <constructor-arg name="databaseName" value="itsadmin"/>
    <constructor-arg name="userCredentials" ref="userCredentials"/>
</bean>

<bean id="userCredentials" class="org.springframework.data.authentication.UserCredentials">
    <constructor-arg name="mechanism"
        value="#{T(com.mongodb.AuthenticationMechanism).SCRAM_SHA_1}" />

    <constructor-arg name="username" value="admin" />
    <constructor-arg name="password" value="admin" />
</bean>

【问题讨论】:

    标签: java mongodb spring-mvc spring-data-mongodb spring-java-config


    【解决方案1】:

    确保您使用的用户对您的itsadmindatabase 具有读取权限。你可以看到如何做到这一点here。如果没有,您可以像 this 一样添加它

    如果是,可能是 spring 无法获取凭据。检查这个SO question,因为它似乎是相关的

    【讨论】:

    • 我已经授予权限,但仍然遇到同样的错误
    • 嗯,您是否尝试过使用带有给定用户/密码的 mongo shell 并查询集合?这样你可以缩小问题的范围
    • 使用mongo shell时获取数据
    • 那么 Spring 似乎无法正确读取凭据。我将使用可能有帮助的 SO 链接更新答案
    猜你喜欢
    • 2020-01-12
    • 1970-01-01
    • 2019-05-11
    • 2017-02-27
    • 2020-09-08
    • 1970-01-01
    • 2020-02-26
    • 1970-01-01
    • 2016-01-14
    相关资源
    最近更新 更多