相关疑难解决方法(0)

pymongo auth在python脚本中失败了

我已经安装了mongodb并启用了auth.和它的工作发现.我可以使用robomongo应用程序从远程笔记本连接它:

Host: SERVER_IP
PORT: 27017
DATEBASE: prod-db
USERNAME: user_name
PASS: user_password
Auth Mechanism: MONGODB-CR
Run Code Online (Sandbox Code Playgroud)

我们可以使用以下方式从本地连接服务器shell:

$ mongo prod-db -u user_name -p user_password
Run Code Online (Sandbox Code Playgroud)

一切正常,但是当我们尝试使用pymongo api时.身份验证失败.下面是python代码:

from pymongo import MongoClient

client = MongoClient()
client.prod_db.authenticate('user_name', 'user_password', mechanism='MONGODB-CR')
db = client.prod_db
result = db.users.find()

for document in result:
    print(document)
Run Code Online (Sandbox Code Playgroud)

使用的工具:

python 2.7
pymongo versiob 3.3.1
MongoDB shell version: 2.6.10
$ mongod --version
db version v2.6.10
2016-10-31T16:34:59.868+0000 git version: nogitversion
2016-10-31T16:34:59.868+0000 OpenSSL version: OpenSSL 1.0.2g  1 Mar 2016
Run Code Online (Sandbox Code Playgroud)

错误跟踪:

Traceback (most recent call last):
  File …
Run Code Online (Sandbox Code Playgroud)

python mongodb pymongo

18
推荐指数
3
解决办法
2万
查看次数

使用 pymongo 身份验证无法连接到 mongodb

我们在 python 脚本中编写了一段代码,用于pymongo连接 mongodb。

username = 'abc'
password = 'xxxxxx'
server = 'dns name of that server'
port = 27017
Run Code Online (Sandbox Code Playgroud)

在程序中,代码如下:

import pymongo
from pymongo import MongoClient
client = MongoClient(url, serverSelectionTimeoutMS=300)
database = client.database_name
data_insert = database.collection_name.insert_one({'id': 1, 'name': xyz})
Run Code Online (Sandbox Code Playgroud)

当我尝试执行这些操作时,它会引发错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/pymongo/cursor.py", line 1114, in next
    if len(self.__data) or self._refresh():
  File "/usr/local/lib/python2.7/dist-packages/pymongo/cursor.py", line 1036, in _refresh
    self.__collation))
  File "/usr/local/lib/python2.7/dist-packages/pymongo/cursor.py", line 873, in __send_message
    **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/pymongo/mongo_client.py", …
Run Code Online (Sandbox Code Playgroud)

python pymongo python-2.7

3
推荐指数
2
解决办法
1万
查看次数

标签 统计

pymongo ×2

python ×2

mongodb ×1

python-2.7 ×1