使用pymongo连接mongodb时报错:pymongo.errors.OperationFailure: not authorized

连接本机或局域网部署的mongodb时可以用以下方法:

 1 from urllib import parse
 2 from pymongo import MongoClient
 3
 4 host = ‘*.*.*.*‘
 5 username = ‘*****‘
 6 password = ‘****‘
 7 passwd = parse.quote(password)  # 对密码先进行编码
 8 port = ‘3717‘
 9  mongo_url = ‘mongodb://{0}:{1}@{2}:{3}‘.format(username, passwd, host, port)
10 clinet = MongoClient(mongo_url)

但连接集群部署的mongodb时,再用以上代码连接,会报错:pymongo.errors.OperationFailure: not authorized

因为mongoDB有不同的认证机制,3.0版本以后采用的是‘SCRAM-SHA-1‘, 之前的版本采用的是‘MONGODB-CR‘,所以首先需要查看自己连接的mongodb的版本号

需要更改连接方式,代码如下:

from pymongo import MongoClient
host = ‘**.**.**.**‘
username = ‘*****‘
password = ‘....‘
port = ‘3717‘
db = ‘test‘
mongo_url = ‘mongodb://{0}:{1}@{2}:{3}/?authSource={4}&authMechanism=SCRAM-SHA-1‘.format(username, password, host, port,db)
clinet = MongoClient(mongo_url)    
authMechanism参数根据自己的版本号,写对应的值就可以了

原文地址:https://www.cnblogs.com/benben-wu/p/10312689.html

时间: 2024-10-11 10:19:55

使用pymongo连接mongodb时报错:pymongo.errors.OperationFailure: not authorized的相关文章

pymongo连接MongoDB

导语 pymongo 是目前用的相对普遍一个python用来连接MongoDB的库,是工作中各种基本需求都能满足具体api可以参考 pymongo APIpymongo github 安装 MongoDB 为了测试pyMongo连接mongodb,首先当然需要在centos下安装mongo,详细参考Centos下安装MongoDB 安装 pymongo 如果没有pip, 建议先安装,至于为啥要用pip你懂得 yum install python-pip pip 安装 pymongo pip in

使用PLSql连接Oracle时报错ORA-12541: TNS: 无监听程序

今天用plsql连接oracle的时候报了无监听程序,寻思是plsql的问题,可惜重装了也没什么卵用,才把注意力集中到oracle服务上,啥也不说了, 直接上链接: 使用PLSql连接Oracle时报错ORA-12541: TNS: 无监听程序

解决连接mysql时报错"Can't connect to local MySQL server through socket '/tmp/mysql.sock'"

命令行连接mysql时,报了“Can't connect to local MySQL server through socket '/tmp/mysql.sock'”的错误:用Navicat连接是报62号错误. 首先确定我本机是装了mysql的 尝试用安全模式启动mysql,命令行执行: /usr/local/bin/mysqld_safe 完了之后运行mysql,成功了. 解决连接mysql时报错"Can't connect to local MySQL server through soc

【第一个项目】MySQL第二天早上第一次连接超时报错,解决方法com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:

MySQL第二天早上第一次连接超时报错,解决方法com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure Last packet sent to the server was 0 ms ago 最近碰到一个mysql5

使用PowerCLI连接VC时报错处理

使用命令: Connect-VIServer -server vcenter.local.com 时报错 解决方法:执行: Set-PowerCLIConfiguration -InvalidCertificateAction Ignore 原文地址:https://blog.51cto.com/emcome/2389999

初窥Python(一)——使用pymongo连接MongoDB

Python 可以使用 pymongo 库方便的操作 MongoDB .插播一句,MongoDB 不同于关系型结构的三层结构--database--> table --> record,它的层级为 database -->collection --> document .这里不重点介绍 MongoDB  用法,主要来看一下如何用 Python 使用 MongoDB. 1.安装MongoDB和pymongo: [[email protected] ~]# pip install py

java连接MongoDB报错解决

报错内容 com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting for a server that matches ReadPreferenceServerSelector{readPreference=primary}. Client view of cluster state is {type=UNKNOWN, servers=[{address=127.0.0.1:27017, type=UNKN

redis连接超时报错

应用程序连接redis超时,报错如下: ERROR DubboServerHandler-xxx.xx.xx.52:20880-thread-172 2016-12-21 15:25:20,429 com.alibaba.dubbo.common.logger.slf4j.Slf4jLogger.error(Slf4jLogger.java:74)  [DUBBO] Got unchecked and undeclared exception which called by xxx.xx.xx.

java连接mongodb报错

<span style="background-color: rgb(255, 255, 255); font-family: Arial, Helvetica, sans-serif;">写一个简短的测试程序却报错,郁闷</span> <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"><