【pymongo】连接认证 auth failed解决方法

【pymongo】连接认证 auth failed解决方法故事背景:我在虚拟机(ip:192.168.xx.xx)上建立了一个mongo的数据库,里面已经存好了内容。里面的一个database叫做"adb",里面有个collectio

大家好,又见面了,我是你们的朋友全栈君。

故事背景:

我在虚拟机(ip:192.168.xx.xx)上建立了一个mongo的数据库,里面已经存好了内容。里面的一个database叫做 “adb”, 里面有个collection, 叫做”acol”

我打开了mongo的认证功能,并且把用户”userA”授予了访问”adb”的权限。

 

然后,我用下面的方式连接

import pymongo
host = '192.168.xx.xx'
conn = pymongo.MongoReplicaSetClient('mongodb://%s:%s@%s' % ("userA", "password", host))
db = conn["adb"]
collect = db["acol"]

结果报错:

pymongo.errors.OperationFailure: command SON([(‘authenticate’, 1), (‘user’, u”), (‘nonce’, u”), (‘key’, u”)]) on namespace admin.$cmd failed: auth failed

 

然后,各种纠结。后来看了官网,终于找到了解决方法。

http://api.mongodb.org/python/current/examples/authentication.html

1.查看pymongo版本: 结果为3.2

pip list -v

2.查看mongoDB版本: 结果为2.6

在mongo终端中输入

db.version()

 

mongoDB有不同的认证机制,3.0版本以后采用的是‘SCRAM-SHA-1’, 之前的版本采用的是‘MONGODB-CR’。所以,以我的版本情况,显然应该用’MONGODB-CR’

用下面的方法连接,就成功了。

host = '192.168.xx.xx'
client = pymongo.MongoClient(host)
client.adb.authenticate("userA", "password", mechanism='MONGODB-CR')
db = client["adb"]
collection = db["acol"]

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154476.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • flake8规范_flake8

    flake8规范_flake8一.概述flake8(代码规范利器)是下面三个工具的封装:1)PyFlakes2)Pep83)NedBatchelder’sMcCabescript二.安装pipinstallflake8三.使用(rd)➜webgit:(develop)✗flake8views.py#检查一个文件views.py:1:1:E265blockcomments…

    2022年9月13日
    0
  • 自学silverlight 5.0

    这是一个silverlight游戏:http://keleyi.com/keleyi/phtml/silverlight/接了个单子,非要用Silverlight5来作一个项目,之前从来没接触过这

    2021年12月23日
    48
  • spring 中StoredProcedure的用法–转载[通俗易懂]

    spring 中StoredProcedure的用法–转载[通俗易懂]StoredProcedure是一个抽象类,必须写一个子类来继承它,这个类是用来简化JDBCTemplate执行存储过程操作的。首先我们写一个实现类:packagecom.huaye.framework.dao;importjava.sql.Types;importjava.util.HashMap;importjava.util.Map;i…

    2022年7月26日
    1
  • flag_activity_new_task 简单_android startactivityforresult

    flag_activity_new_task 简单_android startactivityforresult2019独角兽企业重金招聘Python工程师标准>>>…

    2022年9月27日
    1
  • vue中上传文件_vue下载文件乱码

    vue中上传文件_vue下载文件乱码vue文件上传下载报文件损坏

    2022年8月15日
    3
  • 以上都点赞表情包图片_超级点赞图片

    以上都点赞表情包图片_超级点赞图片原题链接微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性。然而有这么一种人,他们会通过给自己看到的一切内容点赞来狂刷存在感,这种人就被称为“点赞狂魔”。他们点赞的标签非常分散,无法体现出明显的特性。本题就要求你写个程序,通过统计每个人点赞的不同标签的数量,找出前3名点赞狂魔。输入格式:输入在第一行给出一个正整数N(≤100),是待统计的用户数。随后N行,每行列出一位用户的点赞标签。格式为“Name K F​1​

    2022年8月8日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号