记一次springboot连接mongoDB踩坑

2019-05-16 11:23:21  卢浮宫  版权声明:本文为站长原创文章,转载请写明出处


一、写在前面的话

    今天做同程数据操作,使用的是springboot+mongoDB,本地代码用的是本地的mongoDB数据库,在部署到服务器上时遇到了一些列的问题,这里记录下。


二、遇到问题罗列

    ①jdk版本问题

    ②mongoDB版本问题

    ②springboot版本与mongoDB版本兼容

    ③mongoTemplate相关


三、JDK问题

    本地使用的JDK是1.8,服务器使用的是1.7。这个就没的说了,要么在服务器配置JDK8,要么改动本地代码JDK依赖。

    我这里没有去改动服务器配置,在maven上改写JDK版本依赖即可。


    <properties>
<java.version>1.7</java.version>
</properties>


四、mongoDB版本问题

       我本地使用的版本是3.0.6,服务器版本是2.2.6.。这个在数据操作中并没有多大影响。


五、springboot版本与mongoDB版本兼容问题

    项目中使用springboot2.1.4,操作mongoDB使用的是mongoTemplate,但是这个对mongoDB版本有支持前提。

    很不幸,又需要版本降低,我这里把springboot版本和springboot对mongo的支持版本也降低到了1.5.3


     <parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.3.RELEASE</version>
<relativePath/>
</parent>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
<version>1.5.3.RELEASE</version>
</dependency>


六、结果

  mongoTemplate在进行了上述操作后也是可以使用了。

七、后记

    同时也遇到了 mongDB连接超时问题
    ①首先排查了mongoDB配置信息(未发现异常)        
        spring.data.mongodb.host=XXX
         spring.data.mongodb.port=XXX
         spring.data.mongodb.username=XXX
         spring.data.mongodb.password=XXX
         spring.data.mongodb.database=XXX
    ②mongoDB在2.4以上有特殊的配置方案(为啥我3.0也能使用上面的配置?)
        spring.data.mongodb.uri=mongodb://root(userName):root(password)@localhost(ip地址):27017(端口号)/gis(collections/数据库)
 
    ③重点:mongoDB数据库也是有权限的,比如你的root用户只分配了xaDB1的权限,那么你新建的xaDB2是无法进行连接并操作的
 



更多精彩请关注guangmuhua.com


最新评论:

回复内容没清空 哦哦哦
2019-07-31 17:20:03
1楼
回复内容没清空
2019-07-31 17:19:56
2楼
看完回不去
2019-07-31 17:19:38
3楼
666666666666666666
2019-05-17 15:04:28
4楼