Я пытаюсь использовать созданную мной базу данных mon go, но получаю ошибку, от которой не могу избавиться. Это мой код: если я просто распечатаю коллекцию, она отлично работает
from pymongo import MongoClient
import ssl
client = MongoClient("mongodb+srv://HugoAdmin:<XXXXXXXXXXX>@personalsite-3gjka.mongodb.net/test?retryWrites=true&w=majority")
db = client.test
db = client['Site']
collection = db['BlogPosts']
print(collection)
post = {"_id": 0, "author": "Hugo Joncour", "date": "25/03/2020"}
#collection.insert_one(post)
Я получаю:
➜ webportfolio git:(master) ✗ Python3.6 mongo.py
Collection(Database(MongoClient(host=['personalsite-shard-00-01-3gjka.mongodb.net:27017', 'personalsite-shard-00-00-3gjka.mongodb.net:27017', 'personalsite-shard-00-02-3gjka.mongodb.net:27017'], document_class=dict, tz_aware=False, connect=True, retrywrites=True, w='majority', authsource='admin', replicaset='PersonalSite-shard-0', ssl=True), 'Site'), 'BlogPosts')
, но если я хочу вставить сообщение:
from pymongo import MongoClient
import ssl
client = MongoClient("mongodb+srv://HugoAdmin:<yvctrd6F7GUYBVYT>@personalsite-3gjka.mongodb.net/test?retryWrites=true&w=majority")
db = client.test
db = client['Site']
collection = db['BlogPosts']
#print(collection)
post = {"_id": 0, "author": "Hugo Joncour", "date": "25/03/2020"}
collection.insert_one(post)
Я получаю:
➜ webportfolio git:(master) ✗ Python3.6 mongo.py
Traceback (most recent call last):
File "mongo.py", line 15, in <module>
collection.insert_one(post)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymongo/collection.py", line 698, in insert_one
session=session),
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymongo/collection.py", line 612, in _insert
bypass_doc_val, session)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymongo/collection.py", line 600, in _insert_one
acknowledged, _insert_command, session)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymongo/mongo_client.py", line 1490, in _retryable_write
with self._tmp_session(session) as s:
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/contextlib.py", line 81, in __enter__
return next(self.gen)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymongo/mongo_client.py", line 1823, in _tmp_session
s = self._ensure_session(session)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymongo/mongo_client.py", line 1810, in _ensure_session
return self.__start_session(True, causal_consistency=False)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymongo/mongo_client.py", line 1763, in __start_session
server_session = self._get_server_session()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymongo/mongo_client.py", line 1796, in _get_server_session
return self._topology.get_server_session()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymongo/topology.py", line 490, in get_server_session
None)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymongo/topology.py", line 209, in _select_servers_loop
self._error_message(selector))
pymongo.errors.ServerSelectionTimeoutError: SSL handshake failed: personalsite-shard-00-00-3gjka.mongodb.net:27017: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:841),SSL handshake failed: personalsite-shard-00-02-3gjka.mongodb.net:27017: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:841),SSL handshake failed: personalsite-shard-00-01-3gjka.mongodb.net:27017: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:841)
Я попробовал это https://api.mongodb.com/python/current/examples/tls.html, добавив "ssl = True, ssl_cert_reqs = ssl.CERT_NONE" в MongoClient (), но затем я получаю:
➜ webportfolio git:(master) ✗ Python3.6 mongo.py
Traceback (most recent call last):
File "mongo.py", line 15, in <module>
collection.insert_one(post)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymongo/collection.py", line 698, in insert_one
session=session),
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymongo/collection.py", line 612, in _insert
bypass_doc_val, session)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymongo/collection.py", line 600, in _insert_one
acknowledged, _insert_command, session)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymongo/mongo_client.py", line 1491, in _retryable_write
return self._retry_with_session(retryable, func, s, None)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymongo/mongo_client.py", line 1377, in _retry_with_session
with self._get_socket(server, session) as sock_info:
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/contextlib.py", line 81, in __enter__
return next(self.gen)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymongo/mongo_client.py", line 1222, in _get_socket
self.__all_credentials, checkout=exhaust) as sock_info:
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/contextlib.py", line 81, in __enter__
return next(self.gen)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymongo/pool.py", line 1138, in get_socket
sock_info.check_auth(all_credentials)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymongo/pool.py", line 712, in check_auth
auth.authenticate(credentials, self)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymongo/auth.py", line 564, in authenticate
auth_func(credentials, sock_info)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymongo/auth.py", line 539, in _authenticate_default
return _authenticate_scram(credentials, sock_info, 'SCRAM-SHA-1')
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymongo/auth.py", line 301, in _authenticate_scram
res = sock_info.command(source, cmd)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymongo/pool.py", line 613, in command
user_fields=user_fields)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymongo/network.py", line 167, in command
parse_write_concern_error=parse_write_concern_error)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymongo/helpers.py", line 159, in _check_command_response
raise OperationFailure(msg % errmsg, code, response)
pymongo.errors.OperationFailure: bad auth Authentication failed.
Есть идеи, как это решить?