0
데이터베이스와 컬렉션 이름이 같은 mongolab을 사용하여 데이터베이스를 설정했습니다. 나는 이것을 삭제하고 더 나은 명명 체계를 만들지 않았다고 결심했다. 새로운 DB에 대해 새 사용자/암호를 추가하고 인증을 시도했습니다. 계속 실패하고있어. 이유를 모르겠다. 내 신임장을 다시 확인했는데 정확합니다. mongolab이 제공하는 URI를 확인했는데 그 또한 올바른 것입니다. 이 코드는 첫 번째 db에서 잘 작동했습니다.PyMongo 인증에 실패했습니다
이 문제는이와
Error
Traceback (most recent call last):
File "C:\Users\Austin\PycharmProjects\Words\test_mongodb.py", line 15, in testUpdate
results = self.mongodb_obj.update(test)
File "C:\Users\Austin\PycharmProjects\Words\mongodb.py", line 38, in update
upsert=True
File "C:\Python33\lib\site-packages\pymongo\collection.py", line 2235, in update
with self._socket_for_writes() as sock_info:
File "C:\Python33\lib\contextlib.py", line 48, in __enter__
return next(self.gen)
File "C:\Python33\lib\site-packages\pymongo\mongo_client.py", line 718, in _get_socket
with server.get_socket(self.__all_credentials) as sock_info:
File "C:\Python33\lib\contextlib.py", line 48, in __enter__
return next(self.gen)
File "C:\Python33\lib\site-packages\pymongo\server.py", line 152, in get_socket
with self.pool.get_socket(all_credentials, checkout) as sock_info:
File "C:\Python33\lib\contextlib.py", line 48, in __enter__
return next(self.gen)
File "C:\Python33\lib\site-packages\pymongo\pool.py", line 541, in get_socket
sock_info.check_auth(all_credentials)
File "C:\Python33\lib\site-packages\pymongo\pool.py", line 306, in check_auth
auth.authenticate(credentials, self)
File "C:\Python33\lib\site-packages\pymongo\auth.py", line 436, in authenticate
auth_func(credentials, sock_info)
File "C:\Python33\lib\site-packages\pymongo\auth.py", line 416, in _authenticate_default
return _authenticate_scram_sha1(credentials, sock_info)
File "C:\Python33\lib\site-packages\pymongo\auth.py", line 216, in _authenticate_scram_sha1
res = sock_info.command(source, cmd)
File "C:\Python33\lib\site-packages\pymongo\pool.py", line 213, in command
read_concern)
File "C:\Python33\lib\site-packages\pymongo\network.py", line 99, in command
helpers._check_command_response(response_doc, None, allowable_errors)
File "C:\Python33\lib\site-packages\pymongo\helpers.py", line 196, in _check_command_response
raise OperationFailure(msg % errmsg, code, response)
pymongo.errors.OperationFailure: Authentication failed.
도움 주시면 감사하겠습니다 다음과 같은 오류가 발생하는 경우 내 로그인 코드
def __init__(self, user_id, password, database, collection):
# mongodb://<dbuser>:<dbpassword>@ds017205.mlab.com:17205/words
mongodb_uri = "mongodb://" + user_id + ":" + password + "@ds017205.mlab.com:17205/" + database
client = pymongo.MongoClient(mongodb_uri)
db = client[database]
self.collection = db[collection] # is declared in class
입니다. 감사합니다
어떤 버전의 pymongo 및 MongoDB를 사용하고 있습니까? [인증 예제 문서 페이지] (https://api.mongodb.com/python/current/examples/authentication.html)에 따라 비밀번호의 문자를 이스케이프 처리해야합니까? –
mongodb와 pymongo의 최신 버전을 사용하고 있습니다. 가장 최근의 3 ~ 4 일을 다운로드했습니다. pymongo – hiEntropy
에 대한 pip 설치가 암호에서 특별판을 탈출하려고 시도한 것과 같은 결과를 얻었습니다. 또한 그것은 도주하지 않고 전에 일했습니다. – hiEntropy