
* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.
* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.
3-12강의 mongoDB 연결하기 에서 mongoDB에 데이터 삽입 시도 시 에러 발생합니다.
FAQ글에서 찾은 certifi 라이브러리 추가 시에도 에러가 발생합니다.

작성한 코드 및 에러 메세지
코드
from pymongo import MongoClient
client = MongoClient('mongodb+srv://sparta:test@cluster0.89nsamy.mongodb.net/?retryWrites=true&w=majority')
db = client.dbsparta
doc = {
'name':'영수',
'age':24
}
db.users.insert_one(doc)
오류 내용 :
$ "c:/Users/dnwls/OneDrive/바탕 화면/sparta/pythonprac/venv/Scripts/python.exe" "c:/Users/dnwls/OneDrive/바탕 화면/sparta/pythonprac/dbprac.py"
Traceback (most recent call last):
File "c:/Users/dnwls/OneDrive/바탕 화면/sparta/pythonprac/dbprac.py", line 4, in <module>
client = MongoClient('mongodb+srv://sparta:test@cluster0.89nsamy.mongodb.net/?retryWrites=true&w=majority',tlsCAFile=ca)
File "C:\Users\dnwls\OneDrive\바탕 화면\sparta\pythonprac\venv\lib\site-packages\pymongo\mongo_client.py", line 494, in __init__
keyword_opts = dict(common.validate(k, v)
File "C:\Users\dnwls\OneDrive\바탕 화면\sparta\pythonprac\venv\lib\site-packages\pymongo\mongo_client.py", line 494, in <genexpr>
keyword_opts = dict(common.validate(k, v)
File "C:\Users\dnwls\OneDrive\바탕 화면\sparta\pythonprac\venv\lib\site-packages\pymongo\common.py", line 569, in validate
value = validator(option, value)
File "C:\Users\dnwls\OneDrive\바탕 화면\sparta\pythonprac\venv\lib\site-packages\pymongo\common.py", line 127, in raise_config_error
raise ConfigurationError("Unknown option %s" % (key,))
pymongo.errors.ConfigurationError: Unknown option tlsCAFile
(venv)
dnwls@DESKTOP-V08CVKM MINGW64 ~/OneDrive/바탕 화면/sparta/pythonprac
$ "c:/Users/dnwls/OneDrive/바탕 화면/sparta/pythonprac/venv/Scripts/python.exe" "c:/Users/dnwls/OneDrive/바탕 화면/sparta/pythonprac/dbprac.py"
Traceback (most recent call last):
File "c:/Users/dnwls/OneDrive/바탕 화면/sparta/pythonprac/dbprac.py", line 12, in <module>
db.users.insert_one(doc)
File "C:\Users\dnwls\OneDrive\바탕 화면\sparta\pythonprac\venv\lib\site-packages\pymongo\collection.py", line 680, in insert_one
self._insert(document,
File "C:\Users\dnwls\OneDrive\바탕 화면\sparta\pythonprac\venv\lib\site-packages\pymongo\collection.py", line 596, in _insert
return self._insert_one(
File "C:\Users\dnwls\OneDrive\바탕 화면\sparta\pythonprac\venv\lib\site-packages\pymongo\collection.py", line 577, in _insert_one
result = self.__database.client._retryable_write(
File "C:\Users\dnwls\OneDrive\바탕 화면\sparta\pythonprac\venv\lib\site-packages\pymongo\mongo_client.py", line 1098, in _retryable_write
with self._tmp_session(session) as s:
File "C:\Users\dnwls\AppData\Local\Programs\Python\Python38\lib\contextlib.py", line 113, in __enter__
return next(self.gen)
File "C:\Users\dnwls\OneDrive\바탕 화면\sparta\pythonprac\venv\lib\site-packages\pymongo\mongo_client.py", line 1404, in _tmp_session
s = self._ensure_session(session)
File "C:\Users\dnwls\OneDrive\바탕 화면\sparta\pythonprac\venv\lib\site-packages\pymongo\mongo_client.py", line 1391, in _ensure_session
return self.start_session(causal_consistency=False)
File "C:\Users\dnwls\OneDrive\바탕 화면\sparta\pythonprac\venv\lib\site-packages\pymongo\mongo_client.py", line 1369, in start_session
server_session = self._get_server_session()
File "C:\Users\dnwls\OneDrive\바탕 화면\sparta\pythonprac\venv\lib\site-packages\pymongo\mongo_client.py", line 1377, in _get_server_session
return self._topology.get_server_session()
File "C:\Users\dnwls\OneDrive\바탕 화면\sparta\pythonprac\venv\lib\site-packages\pymongo\topology.py", line 418, in get_server_session
self._select_servers_loop(
File "C:\Users\dnwls\OneDrive\바탕 화면\sparta\pythonprac\venv\lib\site-packages\pymongo\topology.py", line 198, in _select_servers_loop
raise ServerSelectionTimeoutError(
pymongo.errors.ServerSelectionTimeoutError: SSL handshake failed: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1124),SSL handshake failed: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1124),SSL handshake failed: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1124)
(venv)
certifi 라이브러리 추가 후 재사용한 코드
from pymongo import MongoClient
import certifi
ca=certifi.where()
client = MongoClient('mongodb+srv://sparta:test@cluster0.89nsamy.mongodb.net/?retryWrites=true&w=majority', tlsCAFile=ca)
db = client.dbsparta
doc = {
'name':'영수',
'age':24
}
db.users.insert_one(doc)
오류내용
"c:/Users/dnwls/OneDrive/바탕 화면/sparta/pythonprac/venv/Scripts/python.exe" "c:/Users/dnwls/OneDrive/바탕 화면/sparta/pythonprac/dbprac.py"
Traceback (most recent call last):
File "c:/Users/dnwls/OneDrive/바탕 화면/sparta/pythonprac/dbprac.py", line 5, in <module>
client = MongoClient('mongodb+srv://sparta:test@cluster0.89nsamy.mongodb.net/?retryWrites=true&w=majority', tlsCAFile=ca)
File "C:\Users\dnwls\OneDrive\바탕 화면\sparta\pythonprac\venv\lib\site-packages\pymongo\mongo_client.py", line 494, in __init__
keyword_opts = dict(common.validate(k, v)
File "C:\Users\dnwls\OneDrive\바탕 화면\sparta\pythonprac\venv\lib\site-packages\pymongo\mongo_client.py", line 494, in <genexpr>
keyword_opts = dict(common.validate(k, v)
File "C:\Users\dnwls\OneDrive\바탕 화면\sparta\pythonprac\venv\lib\site-packages\pymongo\common.py", line 569, in validate
value = validator(option, value)
File "C:\Users\dnwls\OneDrive\바탕 화면\sparta\pythonprac\venv\lib\site-packages\pymongo\common.py", line 127, in raise_config_error
raise ConfigurationError("Unknown option %s" % (key,))
pymongo.errors.ConfigurationError: Unknown option tlsCAFile
(venv)
오류 발생 시, 작성한 코드 전체와 에러 메시지를 첨부해 주세요.
Tip 1) </> 아이콘을 눌러 코드박스를 만들어 보세요.
Tip 2) Ctrl+A(맥의 경우 Command+A) 단축키로 코드를 한 번에 선택할 수 있어요!
