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

故事背景:

我在虚拟机(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:%[email protected]%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"]
时间: 2024-08-02 10:57:52

【pymongo】连接认证 auth failed解决方法的相关文章

FileZilla连接ftp服务器失败,提示"AUTH TLS"解决方法

FileZilla连接ftp服务器失败,提示"AUTH TLS"解决方法 前几天还是能正常连接ftp服务器的,突然一下连接失败,提示"AUTH TLS",用浏览器试了一下"ftp:ip地址",输入用户名.密码后可以正常访问.所以应该是FileZilla软件连接配置有点问题,百度了一下就解决了.记录下解决过程,方便自己查看. 1.连接的提示 连接时并没有提示用户名.密码错误,说明是正确的:查了下,原因是服务器不支持FTP over TLS的连接方式

SSH连接自动断开的解决方法(deb/rpm)

######### 修改后的: ## # tail -f -n 20 sshd_config#MaxStartups 10:30:60#Banner /etc/issue.net # Allow client to pass locale environment variablesAcceptEnv LANG LC_* Subsystem sftp /usr/lib/openssh/sftp-server # Set this to 'yes' to enable PAM authenticat

zabbix启动报错:Connection to database 'xxx' failed解决方法

Zabbix 分布式系统监视系统 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题. 本文讲解的是zabbix无法启动报错:Connection to database 'xxx' failed: [1045] Access denied for user 'xxx'@'localhost' (using password: NO)

Oracle 笔记:PLSQL无法连接64位Oracle 解决方法

Plsql打开后提示错误,登录界面无连接目标选择. 原因:PLSQL本身好像就不支持64位的Oracle. 解决方法: 到Oracle 官网下载32位的 Oracle 客户端,地址为 http://www.oracle.com/technetwork/topics/winsoft-085727.html 解压下载的32位客户端即可. PLSQL登录界面暂时取消登录,先进入PLSQL界面,点击首选项,设置OCI库为刚才下载的32位客户端的OCI路径,路径中一定要包含 oci.dll . 添加环境变

NuGet 无法连接到远程服务器-解决方法

一. Entity Framework以下简称EF 安装EF4.3的步骤是首先安装VS扩展 NuGet,然后再使用NuGet安装EF程序包 安装完NuGet就可以安装EF了,有两种方式可以安装EF: 1.使用命令 install-package EntityFramework -Pre 但出现如下错误: 2.使用可视化工具,菜单栏>>工具>>程序包管理器>>管理解决方案的程序包 同样出现如下错误 出现该错误的原因是因为安装NuGet扩展后默认只有一个程序包源而我们需要用

su认证失败的解决方法

转载请注明原文出处,http://www.cnblogs.com/flyingcloude/p/6992390.html su认证失败的解决方法Ubuntu安装后,root用户默认是被锁定了的,不允许登录,也不允许“su”到 root.有人说这是个不好的实践,特别是对于服务器来说.我觉得对于桌面用户来说,这样安全性更高一些,是应该的:但对于服务器可以设置成“允许 su 到root,但不允许root用户直接登录”.而我为了开发时的方便,则在桌面和服务器上都采用这种方式. ◆允许 su 到 root

Debug Assertion Failed解决方法! !!

Debug Assertion Failed解决方法! !! 2011-10-28 22:23 1569人阅读 评论(0) 收藏 举报 delete测试  VC++调程序出现如下错误:   Debug   Assertion   Failed!       Program:   D:\wyuStud\debug\wyuStud.exe     File:   afx.inl           Line:157      可能问题:1.野指针;2.内存泄露  解决方法:   1.看一看你的程序里

Centos 7连接opevpn提示错误解决方法

最近搞openvpn 在阿里云windows server 2008上面搭建的openvpn服务器(本来想在linux上做的没办法领导要求). 我用本地虚拟机测试连接openvpn没有任何问题 Centos 6.5 和windows 7 都可以连接Openvpn 唯独Centos  7 不行出现如下报错!这个问题解决了一天的时间 百度 Google 各大论坛 QQ群都解决不了! 具体错误如下 d Feb 24 17:08:08 2016 VERIFY ERROR: depth=0, error=

svn checkout 提示“由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。”解决方法

安装好之后再windows上checkout项目,一直出错:"由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败":在尝试了很多次之后找到了最后的问题所在.  在网上找的方法试过了,都无效,大致有以下出错的可能和解决方案: ①svn项目配置文件问题: 解决方法:检查重新配置svn项目中的authz.passwd.svnserve.conf ②防火墙问题:开启了防火墙 解决方法:1:关闭防火墙.2:开放3690端口 ③svn客户端:有历史数据 解决方法:清除认证数据等