相关疑难解决方法(0)

如何在pymongo连接中输入密码?

我的问题是如何通过pymongo验证mongodb身份验证的用户名密码?.

我正在尝试使用PyMongo 3.2.2和包含用户和密码的URL连接到MongoDB实例,如MongoDB Docs中所述.不同的是我使用的密码包含'@'.

起初我只是试图连接而不逃避,像这样:

prefix ='mongodb://'

user ='user:passw_with _ @ _'

suffix ='@ 127.0.0.1:27001 /'

conn = pymongo.MongoClient(前缀+用户+后缀)

当然我得到以下错误:

InvalidURI: ':' or '@' characters in a username or password must be escaped according to RFC 2396.
Run Code Online (Sandbox Code Playgroud)

所以我尝试转义用户:使用urllib.quote()传递部分,如下所示:

prefix ='mongodb://'

user = urllib.quote('user:passw_with _ @ _')

suffix ='@ 127.0.0.1:27001 /'

conn = pymongo.MongoClient(前缀+用户+后缀)

但后来我得到了:

OperationFailure: Authentication failed.
Run Code Online (Sandbox Code Playgroud)

(重要的是说使用GUI MongoDB管理工具(Robomongo,如果这很重要)我可以使用(真实)地址和凭证连接到MongoDB.)

在上面的代码中打印用户变量生成一个'user:passw_with_%40_'字符串(即'@'变为'%40')并根据维基百科那是预期的转义.

我甚至试图逃逸单,双反斜杠(中@ user = 'user:passw_with_\\@_'user = 'user:passw_with_\@_' …

python authentication mongodb pymongo-3.x

16
推荐指数
2
解决办法
8802
查看次数

错误消息:MongoError:错误的身份验证通过URI字符串失败

MongoDB和Node.js的新手。我试图通过mongo给我的连接字符串连接到我的mongoDB服务器:

“ mongodb + srv:// david:password@cluster0-re3gq.mongodb.net/test?retryWrites = true”

在我的代码中,我像这样通过猫鼬调用连接(显然输入了密码):

const mongoose = require('mongoose');
const db = 'mongodb+srv://david:<password>@cluster0-re3gq.mongodb.net/test?retryWrites=true'
mongoose
    .connect(db, { 
        useNewUrlParser: true,
        useCreateIndex: true
      })
    .then(() => console.log('MongoDB connected...'))
    .catch(err => console.log(err));
Run Code Online (Sandbox Code Playgroud)

当我运行代码时,出现以下错误

“ MongoError:错误的身份验证失败。”

关于这意味着什么的任何想法?谢谢!

mongoose mongodb node.js

6
推荐指数
6
解决办法
7341
查看次数