`

Spring-Mongo-Data与Mongo3.2集成问题

阅读更多
被一个Spring与mongo集成问题困扰了2天,在本机跑程序都是好好的,但是扔到服务器上面死活是验证用户名和密码失败。仔细分析,发现是自己本机环境没有配置用户名和密码就可以连接mongo。于是上外网去搜索报错,外网的道友们给出的解答是Try updating to spring-data-mongodb to the latest version. I was getting that authentication error while using version 1.7.2.RELEASE but it stopped after updating to 1.8.0.RELEASE.
意思就是我的jar包版本太低,不支持配置用户名和密码。
于是乎便在maven里面升级jar包的版本。但是,但是发现还是连接不上。又上外网搜索道友们的解决方案(百度搜索不到相关的案例),道友们提示说
<!-- 配置ip端口 -->
     <mongo:mongo-client id="mongo"  host="" port=""   credentials=""></mongo:mongo-client>
    <!-- 配置默认工厂 -->
    <mongo:db-factory id="mongoDbFactory" dbname="" host=""
port="3717" username="" password=""/>
   
    <!-- 默认Template -->
    <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
    <constructor-arg name="mongoDbFactory" ref="mongoDbFactory"/>
</bean>

是spring配置里面的mongo配置有问题,于是又各种尝试,各种换不同的标签,以及翻spring-mong-data的源码看能不能找出问题是什么,找了半天还是报相同的连接不上异常。

困扰的真是没有办法了,分析下来原因就只有两方面的,第一就是授权出了问题,用户和密码不正确,分析下来这方面基本排除掉。第二方面就是程序有问题,但是程序那个方面有问题真是不知道,不过大致知道是因为jar包的版本引起的。

没有办法的办法,便把这个项目扔到一边,去找了一个Helloworld的程序来,不过里面配置了用户名和密码而已。跑下来验证了授权方面没有出问题。可以锁定是自己引的jar包的问题了。对比下来发现自己引了2个jar包,一个是spring-mongo-data的jar一个是mongo驱动的jar。最后只引一个spring-mongo-data的jar,困扰两天的问题终于解决了。



以下是整理的mongo 创建用户授权的代码
db.createUser({user:"logsystest",pwd:"test",roles:[{role:"userAdmin",db:"admin"},{role"read",db:"logsys"}]})
创建用户之后便是db.auth("logsystest","test"),对用户进行授权。
需要注意的就是在那个库下面创建的用户,登录的时候就只能登录到哪一个库上面去,与授权是指定的库无关系。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics