文档章节

spring-data-mongodb mongo2.X驱动连接mongodb3.X服务器用户认证失败的解决办法

流年_浮华诺言
 流年_浮华诺言
发布于 2017/02/15 11:34
字数 642
阅读 138
收藏 0
点赞 0
评论 0

由于mongodb3.X后版本改变了用户认证机制,由原先默认的"MONGODB-CR"认证方式改为了"SCRAM_SHA_1",mongo2.X驱动只支持"MONGODB-CR"方式的认证,所以程序连接时会报认证失败错误

解决办法:

首先关闭认证,修改system.version文档里面的authSchema版本为3,初始安装时候应该是5,命令行如下: 

> use admin 
switched to db admin 
> var schema = db.system.version.findOne({"_id" : "authSchema"}) 
> schema.currentVersion = 3 
3 
> db.system.version.save(schema) 
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) 

不过如果你现在开启认证,仍然会提示AuthenticationFailed MONGODB-CR credentials missing in the user document 原因是原来创建的用户已经使用了SCRAM-SHA-1认证方式

> use admin
switched to db admin
> db.system.users.find()
[...]
{ "_id" : "userdb.myuser", "user" : "myuser", "db" : "userdb", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "XXXXXXXXXXXXXXXXXXXXXXXX", "storedKey" : "XXXXXXXXXXXXXXXXXXXXXXXXXXX", "serverKey" : "XXXXXXXXXXXXXXXXXXXXXXXXXXX" } }, "roles" : [ { "role" : "dbOwner", "db" : "userdb" } ] }

解决方式就是删除刚刚创建的用户,重新重建即可:

> use userdb
switched to db userdb
> db.dropUser("myuser")
true
>db.createUser({user:'myuser',pwd:'123456',roles:[{role:'dbOwner',db:'userdb'}]})

 

附上spring整合mongodb2.X驱动的配置

<?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:mongo="http://www.springframework.org/schema/data/mongo"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/data/mongo http://www.springframework.org/schema/data/mongo/spring-mongo-1.8.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 加载mongodb的属性配置文件 -->
    <context:property-placeholder location="classpath:mongodb.properties"/>
    <mongo:mongo id="mongo" replica-set="${mongo.relicatSet.host}">
        <mongo:options connect-timeout="${mongo.connectTimeout}" max-wait-time="${mongo.maxWaitTime}"
                       auto-connect-retry="${mongo.autoConnectRetry}" socket-keep-alive="${mongo.socketKeepAlive}"
                       socket-timeout="${mongo.socketTimeout}" slave-ok="false"/>
    </mongo:mongo>
    <mongo:db-factory id="mongoDbFactory" dbname="o2o_store" mongo-ref="mongo" username="${mongo.username}"
                      password="${mongo.password}"/>
    <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
        <constructor-arg name="mongoDbFactory" ref="mongoDbFactory"/>
    </bean>
</beans>

spring整合mongodb3.X驱动的配置

<?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:mongo="http://www.springframework.org/schema/data/mongo"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/data/mongo http://www.springframework.org/schema/data/mongo/spring-mongo-1.8.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 加载mongodb的属性配置文件 -->
    <context:property-placeholder
            location="classpath:mongodb.properties"/> <!-- 定义mongo对象,对应的是mongodb官方jar包中的Mongo, --> <!-- MongoClient -->
    <bean id="mongoClient" class="com.mongodb.MongoClient">
        <constructor-arg name="credentialsList">
            <list> <!-- Credentials -->
                <bean class="com.mongodb.MongoCredential">
                    <constructor-arg name="mechanism" value="#{T(com.mongodb.AuthenticationMechanism).SCRAM_SHA_1}"/>
                    <constructor-arg type="java.lang.String" name="userName" value="${mongo.username}"/>
                    <constructor-arg type="java.lang.String" name="source" value="${mongo.dbname}"/>
                    <constructor-arg type="char[]" name="password" value="${mongo.password}"/>
                </bean>
            </list>
        </constructor-arg>
        <constructor-arg name="seeds">
            <list>
                <bean class="com.mongodb.ServerAddress">
                    <constructor-arg type="java.lang.String" name="host" value="${mongo.sharded_clusters1.host}"/>
                    <constructor-arg type="int" name="port" value="${mongo.sharded_clusters1.port}"/>
                </bean>
                <bean class="com.mongodb.ServerAddress">
                    <constructor-arg type="java.lang.String" name="host" value="${mongo.sharded_clusters2.host}"/>
                    <constructor-arg type="int" name="port" value="${mongo.sharded_clusters2.port}"/>
                </bean>
                <bean class="com.mongodb.ServerAddress">
                    <constructor-arg type="java.lang.String" name="host" value="${mongo.sharded_clusters2.host}"/>
                    <constructor-arg type="int" name="port" value="${mongo.sharded_clusters3.port}"/>
                </bean>
            </list>
        </constructor-arg>
    </bean> <!-- MongoDbFactory -->
    <bean id="simpleMongoDbFactoryID" class="org.springframework.data.mongodb.core.SimpleMongoDbFactory">
        <constructor-arg ref="mongoClient"/>
        <constructor-arg name="databaseName" value="${mongo.dbname}"/>
    </bean> <!-- MongoTemplate -->
    <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
        <constructor-arg ref="simpleMongoDbFactoryID"/>
    </bean>
</beans>

 

© 著作权归作者所有

共有 人打赏支持
流年_浮华诺言
粉丝 0
博文 7
码字总数 3196
作品 0
济南
spring-boot-starter-mongodb-pool

在日常工作中,我们通过Spring Data Mongodb来操作Mongodb数据库,在Spring Boot中只需要引入spring-boot-starter-data-mongodb即可。 很多时候我们往往需要操作多个数据库(微服务架构下一个...

尹吉欢
04/22
0
0
centos7.3yum安装mongodb3.4

最小化安装centos7.3 服务器规划(说明: 配置静态IP请查看关于上篇环境配置的博客) 安装mongodb3.x 创建yum源 修改yum源 安装MongoDB软件包和相关工具 网速较慢, 比较耗时, 推荐tar包安装, 下...

paascloud
2017/09/07
0
0
spring MVC 整合mongodb

Spring Mongodb 目录 1 SPRING整合MONGODB 1 1.1 环境准备 1 1.2 包依赖 1 1.3 配置 2 2 案列 5 2.1 SPRING MVC整合MONGODB代码案例 5 1 Spring整合Mongodb 1.1 环境准备 1. mongodb官网 ht...

浅夏
2014/03/13
0
0
MongoVUE无法创建collections、无法使用用户名密码登录

一:MongoVUE无法创建collections Mongodb新的存储引擎为wiredTiger ,在这种存储引擎下面,我们用可视化工具MongoVUE是无法看到collection的应该更换为mmapv1引擎 1、删除data文件夹,然后重...

少年已不再年少
07/08
0
0
Spring+Mongodb实战(持续更新中...)

本人文笔很烂请见谅,欢迎吐槽和各种拍砖!分享快乐! 1.准备工作 Spring Data MongoDB spring-data-mongodb是Spring对Monodb进行封装的Spring-Data项目的分支。点击上面的链接获取最新版。 ...

lee5hx
2014/03/29
0
2
MongoDB在spring中xml传统配置

背景 旧项目中依然在使用springmvc的xml传统配置,最近需要使用MongoDB,需要在spring引入MongoDB的连接配置。 解决 配置mongodb数据库 配置mongodb数据工厂 配置mongodb的Template 配置mon...

亚林瓜子
06/12
0
0
Mongodb安装、简单使用及与spring的集成

Mongodb的下载网址是:httP://www.mongodb.org/display/DOCS/downloads 注:Mongodb支持32位和64位系统,在32位系统下,mongodb只能处理2GB的数据,这是因为mongodb使用内存映射文件存储引擎...

zmf
2015/06/18
0
0
使用Spring访问Mongodb的方法大全——Spring Data MongoDB查询指南

1.概述 Spring Data MongoDB 是Spring框架访问mongodb的神器,借助它可以非常方便的读写mongo库。本文介绍使用Spring Data MongoDB来访问mongodb数据库的几种方法: 使用Query和Criteria类 ...

xiaomin0322
06/28
0
0
简单的spring-data集成mongoDB项目,实现crud的功能

集成了spring框架的jar,加上三个spring-data的jar和一个驱动包 用IDE开发工具新建一个java 项目,需要spring框架的包,和spring-data需要的包,分别是 包下的三个包:spring-data-mongodb ,...

EDIAGD
2013/01/24
0
0
Spring boot中mongodb的使用

mongodb的增删改查 Spring Boot对各种流行的数据源都进行了封装,当然也包括了mongodb,下面给大家介绍如何在spring boot中使用mongodb: 1、pom包配置 pom包里面添加spring-boot-starter-dat...

glen_xu
06/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

idea tomcat 远程调试

tomcat 配置 编辑文件${tomcat_home}/bin/catalina.sh,在文件开头添加如下代码。    CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7829" Idea端配......

qwfys
今天
1
0
遍历目录下的文件每250M打包一个文件

#!/usr/bin/env python # -*- utf-8 -*- # @Time : 2018/7/20 0020 下午 10:16 # @Author : 陈元 # @Email : abcmeabc@163.com # @file : tarFile.py import os import tarfile import thr......

寻爱的小草
今天
1
0
expect同步文件&expect指定host和要同步的文件&构建文件分发系统&批量远程执行命令

20.31 expect脚本同步文件 expect通过与rsync结合,可以在一台机器上把文件自动同步到多台机器上 编写脚本 [root@linux-5 ~]# cd /usr/local/sbin[root@linux-5 sbin]# vim 4.expect#!/...

影夜Linux
今天
1
0
SpringBoot | 第九章:Mybatis-plus的集成和使用

前言 本章节开始介绍数据访问方面的相关知识点。对于后端开发者而言,和数据库打交道是每天都在进行的,所以一个好用的ORM框架是很有必要的。目前,绝大部分公司都选择MyBatis框架作为底层数...

oKong
今天
13
0
win10 上安装解压版mysql

1.效果 2. 下载MySQL 压缩版 下载地址: https://downloads.mysql.com/archives/community/ 3. 配置 3.1 将下载的文件解压到合适的位置 我最终将myql文件 放在:D:\develop\mysql 最终放的位...

Lucky_Me
今天
2
0
linux服务器修改mtu值优化cpu

一、jumbo frames 相关 1、什么是jumbo frames Jumbo frames 是指比标准Ethernet Frames长的frame,即比1518/1522 bit大的frames,Jumbo frame的大小是每个设备厂商规定的,不属于IEEE标准;...

问题终结者
今天
2
0
expect脚本同步文件expect脚本指定host和要同步的文件 构建文件分发系统批量远程执行命令

expect脚本同步文件 在一台机器上把文件同步到多台机器上 自动同步文件 vim 4.expect [root@yong-01 sbin]# vim 4.expect#!/usr/bin/expectset passwd "20655739"spawn rsync -av ro...

lyy549745
今天
1
0
36.rsync下 日志 screen

10.32/10.33 rsync通过服务同步 10.34 linux系统日志 10.35 screen工具 10.32/10.33 rsync通过服务同步: rsync还可以通过服务的方式同步。那需要开启一个服务,他的架构是cs架构,客户端服务...

王鑫linux
今天
1
0
matplotlib 保存图片时的参数

简单绘图 import matplotlib.pyplot as pltplt.plot(range(10)) 保存为csv格式,放大后依然很清晰 plt.savefig('t1.svg') 普通保存放大后会有点模糊文件大小20多k plt.savefig('t5.p...

阿豪boy
今天
3
0
java 8 复合Lambda 表达式

comparator 比较器复合 //排序Comparator.comparing(Apple::getWeight);List<Apple> list = Stream.of(new Apple(1, "a"), new Apple(2, "b"), new Apple(3, "c")) .collect(......

Canaan_
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部