커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
3-12 mongoDB 연결 오류
undefined주차
북마크
조*진
댓글
7
추천
1
조회수
51
조회수
51
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.


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) 단축키로 코드를 한 번에 선택할 수 있어요!



취소
 공유
취소
댓글 0
댓글 알림
나의얼굴