Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/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 2天内无法连接到远程mongo db_Mongodb_Spring Data_Mlab - Fatal编程技术网

Mongodb 2天内无法连接到远程mongo db

Mongodb 2天内无法连接到远程mongo db,mongodb,spring-data,mlab,Mongodb,Spring Data,Mlab,我无法连接到远程mongo数据库。 我在pom中使用以下spring依赖项: <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>3.0.3</version> </dependency> <dependency

我无法连接到远程mongo数据库。 我在pom中使用以下spring依赖项:

<dependency>
      <groupId>org.mongodb</groupId>
      <artifactId>mongo-java-driver</artifactId>
      <version>3.0.3</version>
  </dependency>

  <dependency>
      <groupId>org.springframework.data</groupId>
      <artifactId>spring-data-mongodb</artifactId>
      <version>1.7.1.RELEASE</version>
  </dependency>
原因:com.mongodb.MongoQueryException:查询失败,错误代码为13,服务器ds059702.mongolab.com:59702上显示错误消息“无权查询test081142.Entity”

我需要一些帮助来找出我到底犯了什么错误。我百分之百肯定这些证书是正确的。我们无法找出确切的问题所在

-------------------更新------------------------------

我能够使用连接和执行CRUD

 MongoClientURI uri  = new MongoClientURI("mongodb://dbuser:XXXX@ds059702.mongolab.com:59702/test081142");
    MongoClient client = new MongoClient(uri);
    DB db = client.getDB(uri.getDatabase());

因此,我的spring配置中一定存在一些问题…

从错误消息中可以看出,连接到数据库的“用户”似乎没有“读取”角色

必须通过以下方式授予用户角色(可能由您的db管理员授予):

以上代码取自以下链接:


我可以使用以下配置连接到远程mongo db:

<mongo:mongo-client id="mongo" host="ds059702.mongolab.com" port="59702" credentials="dbuser:XXXX@test081142" >
</mongo:mongo-client>
<mongo:db-factory
        id="mongoDbFactory"
        host="ds059702.mongolab.com"
        port="59702"
        username="dbuser"
        password="XXXX"
        dbname="test081142"
        mongo-ref="mongo" authentication-dbname="test081142"/>

spring数据文档中没有说明这是使用spring配置连接mongo db所需的语法。遗憾的是,spring数据需要提供更清晰的配置语法。 直接从



我投票将这个问题作为离题题来结束,因为它看起来像是一个问题。mongo实验室只是提供远程数据库支持。我认为我在SpringMongo连接中犯了错误……我当前为用户定义的角色是:“角色”:[{“角色”:“dbOwner”,“db”:“test081142”}]
 MongoClientURI uri  = new MongoClientURI("mongodb://dbuser:XXXX@ds059702.mongolab.com:59702/test081142");
    MongoClient client = new MongoClient(uri);
    DB db = client.getDB(uri.getDatabase());
use reporting
db.grantRolesToUser(
    "reportsUser",
    [
      { role: "read", db: "accounts" }
    ]
)
<mongo:mongo-client id="mongo" host="ds059702.mongolab.com" port="59702" credentials="dbuser:XXXX@test081142" >
</mongo:mongo-client>
<mongo:db-factory
        id="mongoDbFactory"
        host="ds059702.mongolab.com"
        port="59702"
        username="dbuser"
        password="XXXX"
        dbname="test081142"
        mongo-ref="mongo" authentication-dbname="test081142"/>
 <?xml version="1.0" encoding="UTF-8"?>
 <beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:context="http://www.springframework.org/schema/context"
      xmlns:mongo="http://www.springframework.org/schema/data/mongo"
      xsi:schemaLocation=
      "http://www.springframework.org/schema/context
      http://www.springframework.org/schema/context/spring-context-3.0.xsd
      http://www.springframework.org/schema/data/mongo
      http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd
      http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

<!-- Default bean name is 'mongo' -->
<mongo:mongo host="localhost" port="27017"/>