pymongo.errors.OperationFailure:命令插入需要身份验证

时间:2019-08-10 15:06:20

标签: python mongodb pymongo ubuntu-18.04

我正在创建一个集合并将其插入数据库中

我已经导入了pymongo,并且还以这种方式定义了db = myClient [“ mydb”],但它表示命令插入需要身份验证

 >>> import pymongo
 >>> from pymongo import MongoClient
 >>> myClient = MongoClient()
 >>> db = myClient.mydb
 >>> users = db.users
 >>> user1 = {"username": "nick", "password": "mysecurepass", "fav_num": 445}
 >>> user_id = users.insert_one(user1).inserted_id

回溯(最近通话最近):   文件“”,第1行,位于   在insert_one中,文件“ /home/mohsen/.local/lib/python3.6/site-packages/pymongo/collection.py”,第700行     会话=会话),   _insert中的文件“ /home/mohsen/.local/lib/python3.6/site-packages/pymongo/collection.py”,第614行     会话_by_doc_val)   _insert_one中的文件“ /home/mohsen/.local/lib/python3.6/site-packages/pymongo/collection.py”,第602行     已确认,_insert_command,会话)   _retryable_write中的文件“ /home/mohsen/.local/lib/python3.6/site-packages/pymongo/mongo_client.py”,第1280行     返回self._retry_with_session(retryable,func,s,None)   _retry_with_session中的文件“ /home/mohsen/.local/lib/python3.6/site-packages/pymongo/mongo_client.py”,第1233行     返回函数(会话,sock_info,可重试)   _insert_command中的第597行的文件“ /home/mohsen/.local/lib/python3.6/site-packages/pymongo/collection.py”     retryable_write = retryable_write)   在命令中的文件“ /home/mohsen/.local/lib/python3.6/site-packages/pymongo/pool.py”,行584     user_fields = user_fields)   在命令中的文件“ /home/mohsen/.local/lib/python3.6/site-packages/pymongo/network.py”,第158行     parse_write_concern_error = parse_write_concern_error)   _check_command_response中的第155行的文件“ /home/mohsen/.local/lib/python3.6/site-packages/pymongo/helpers.py”     提高OperationFailure(msg%errmsg,代码,响应) pymongo.errors.OperationFailure:命令插入需要身份验证

1 个答案:

答案 0 :(得分:0)

看起来您正在使用的MongoDB实例已通过身份验证进行设置,但是当您使用myClient = MongoClient()创建连接时,您并未为其提供凭据。当您连接到数据库时,请尝试以下操作:

client = MongoClient('example.com',
                  username='user',
                 password='password')

这会将正确的用户名和密码传递给Mongo实例,并允许您进行连接。 use this link中提供了有关如何在pymongo中使用身份验证的示例。