'스파르타 코딩클럽 웹개발 종합반 3주차 수업 - MongoDB 연결하기' 수업을 수강하다가 영상과는 달리 오류가 뜨면서 데이터베이스와 연결이 안되는 상황이 발생했다.
오류 내용은 아래와 같다.
raise ServerSelectionTimeoutError(
pymongo.errors.ServerSelectionTimeoutError: ac-ln1e9qm-shard-00-02.fql3q45.mongodb.net:27017: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1108),ac-ln1e9qm-shard-00-01.fql3q45.mongodb.net:27017: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1108),ac-ln1e9qm-shard-00-00.fql3q45.mongodb.net:27017: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1108), Timeout: 30s, Topology Description: <TopologyDescription id: 62da39f3f7f219c12c3d6058, topology_type: ReplicaSetNoPrimary, servers: [<ServerDescription ('ac-ln1e9qm-shard-00-00.fql3q45.mongodb.net', 27017) server_type: Unknown, rtt: None, error=AutoReconnect('ac-ln1e9qm-shard-00-00.fql3q45.mongodb.net:27017: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1108)')>, <ServerDescription ('ac-ln1e9qm-shard-00-01.fql3q45.mongodb.net', 27017) server_type: Unknown, rtt: None, error=AutoReconnect('ac-ln1e9qm-shard-00-01.fql3q45.mongodb.net:27017: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1108)')>, <ServerDescription ('ac-ln1e9qm-shard-00-02.fql3q45.mongodb.net', 27017) server_type: Unknown, rtt: None, error=AutoReconnect('ac-ln1e9qm-shard-00-02.fql3q45.mongodb.net:27017: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1108)')>]>
Certifi 패키지 설치 후 임포트.
ca = certifi.where() 작성 후 mongoclient 주소 뒤에 tlsCAFile = ca 붙이기
import certifi
ca = certifi.where()
client = MongoClient('mongodb+srv://test:sparta@cluster0.fql3q45.mongodb.net/?retryWrites=true&w=majority', tlsCAFile = ca)
그 이후 수업때도 강의와는 다르게 계속 certifi 패키지를 따로 설치해야 했다. 없어도 되고 안 되고의 차이는 좀 더 공부해봐야 할 듯..