Springboot整合mongodb时无法连接数据库

由于之前没有接触过mongodb,最近在学习时遇到了一些问题。用yml配置mongodb如下:

1 spring:
2   application:
3     name:xc-service-manage-cms
4   data:
5     mongodb:
6       uri: mongodb://xuecheng:[email protected]:27017/xc_cms

mongodb在安装完成后是无需验证登录的,在开启用户验证登录后,需要输入用户名密码和库名才能登录。用测试类测试findAll方法时一直显示timeout,打开mangodb数据库进入admin库查询用户:

发现user底下多了一个db键值对,我在创建用户时并没有输入该参数,于是用db.updateUder修改admin值为xc_cms,报错显示无法修改该值,将uri后的库名改为admin,再次测试,这次能够连接了但是无法获得数据,用studio3T打开库发现该用户下有两个库admin和xc_cms,由此得知该用户是建在admin库中的,uri对应两个库当然无法获得数据。删除该用户后,use xc_cms库再次执行创建用户语句,查询:

在xc_cms库中成功创建角色,并且权限也只有该数据库,再次连接studio3T打开数据库发现,只有一个数据库xc_cms,再试测试findAll方法成功获取数据。

总结:

在mongodb中crud时,一定要在对应的库中创建角色,这样该角色才能只对应一个库,才能指定collection获得数据,如果在use admin的条件下创建该角色,则该角色也会有admin库,程序无法判别从哪个库中获得数据,uri后面填的并不是对应的库名,而是创建该角色时所在的库名,也就是一开始多出来的那个key为db的值。

原文地址:https://www.cnblogs.com/yamiya/p/12309240.html

时间: 2024-10-23 07:16:19

Springboot整合mongodb时无法连接数据库的相关文章

springboot 整合 MongoDB 实现登录注册,html 页面获取后台参数的方法

springboot简介: Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者. MongoDB的简介: MongoDB 是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据

企业级 SpringBoot 教程 (八)springboot整合mongodb

准备工作 安装 MongoDB jdk 1.8 maven 3.0 idea 环境依赖 在pom文件引入spring-boot-starter-data-mongodb依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> 数据

企业级java springboot b2bc商城系统二次开发-springboot整合mongodb(八)

准备工作 安装 MongoDB jdk 1.8 maven 3.0 idea 环境依赖 在pom文件引入spring-boot-starter-data-mongodb依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> 数据

springBoot整合thymeleaf时th:onclick事件

今天按照 <JavaEE开发的颠覆者: Spring Boot实战> 学习spring boot的时候在编写7_2时thymeleaf传参的时候发生500错误,通过查找各方面资料,发现书上的springboot版本(1.3.0)和我用的版本(2.1.7)不一样引起的 以下处理方法: 1.   将springboot版本改成2.0.5 2.   3.x版本的thymeleaf为了防止注入攻击,升级了安全机制 解决 修改前 <button th:onclick="'javascri

springboot整合mongodb问题1-Decimal128和BigDecimal的转换之mongodb转换器使用(转)

转自:https://blog.csdn.net/weixin_41792559/article/details/79575524 1.Decimal128的了解由于mongodb4.3以上新加了Decimal128类型.Decimal128类型对小数给了最好的支持,而double类型对小数存在精度的问题.个人觉得Decimal128还是不错的.但是我测试发现spring-data-mongodb 1.*和现在的spring-data-mongodb2.0.5目前不支持Decimal128自动转

使用IDEA工具整合mybatis时使用@Resource和@Autowired自动注解bean时会显示红色问题的解决办法

使用IDEA工具整合mybatis时使用@Resource和@Autowired自动注解bean时会显示红色问题的解决办法 idea中springboot整合mybatis时,通过@Autowired注入的对象一直有下划线提示,但是项目能运行,虽然不影响运行,但是强迫症的程序员肯定看不下去. 如何去除呢?解决:改变@Autowired的检查级别即可.快捷键:Ctrl+Alt+s,进入idea设置界面,输入inspections检索,如下: 原文地址:https://www.cnblogs.com

springboot整合mybatis,mongodb,redis

springboot整合常用的第三方框架,mybatis,mongodb,redis mybatis,采用xml编写sql语句 mongodb,对MongoTemplate进行了封装 redis,对redisTemplate进行封装成工具类 可以基于该项目进行快速开发,省得以后每次开发又要重新整合一遍 项目结构: 属性配置文件 mybatis.mapper-locations=classpath*:/mapper/**/*.xml mybatis.type-aliases-package=com

springboot整合mybatis实现逆向工程

springboot整合mybatis创建逆向工程,快速的创建pojo实体,dao接口,mapper xml文件 第一步添加依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 htt

springboot系列-springboot整合RabbitMQ

一 RabbitMQ的介绍 RabbitMQ是消息中间件的一种,消息中间件即分布式系统中完成消息的发送和接收的基础软件.这些软件有很多,包括ActiveMQ(apache公司的),RocketMQ(阿里巴巴公司的,现已经转让给apache). 消息中间件的工作过程可以用生产者消费者模型来表示.即,生产者不断的向消息队列发送信息,而消费者从消息队列中消费信息.具体过程如下: 从上图可看出,对于消息队列来说,生产者,消息队列,消费者是最重要的三个概念,生产者发消息到消息队列中去,消费者监听指定的消息