Mongodb 2天内无法连接到远程mongo db
我无法连接到远程mongo数据库。 我在pom中使用以下spring依赖项: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
<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"/>