본문으로 바로가기

설치

sudo apt-get install mongodb-server

 

상태확인 : sudo systemctl status mongodb

서비스 등록 : sudo systemctl enable mongodb (부팅시 자동으로 서비스 시작)

포트확인 : netstat -antp (MongoDB 서비스 default port는 27017)

 

접속 : sudo mongo

 

원격 접속 설정

먼저 테스트해봅니다.

import pymongo
import datetime

def connect():
    host = '192.168.254.77'
    port = '27017'
    db = 'blog'
    coll = 'ex'
    conn = pymongo.MongoClient('mongodb://{}:{}'.format(host, port))
    
    today = datetime.datetime.now().date()
    conn[db][coll].insert({
        'name': 'jvvp.tistory.com',
        'today': str(today)
    })
    
    docs = conn[db][coll].find()
    for doc in docs:
        print(doc)

connect()
pymongo.errors.ServerSelectionTimeoutError: 192.168.254.77:27017: [WinError 10061] 대상 컴퓨터에서 연결을 거
부했으므로 연결하지 못했습니다

 

환경파일을 열어서 편집하겠습니다.

sudo vi /etc/mongodb.conf

 

bind_ip = 127.0.0.1 부분을 주석으로 막고

bind_ip = 0.0.0.0 을 추가한 후 저장 하고 나옵니다.

서비스 재시작

sudo systemctl restart mongodb

이제 원격 접속이 가능합니다.

 

코드를 다시 실행해보면 정상적으로 동작하는 것을 확인할 수 있습니다.

import pymongo
import datetime

def connect():
    host = '192.168.254.77'
    port = '27017'
    db = 'blog'
    coll = 'ex'
    conn = pymongo.MongoClient('mongodb://{}:{}'.format(host, port))
    
    today = datetime.datetime.now().date()
    conn[db][coll].insert({
        'name': 'jvvp.tistory.com',
        'today': str(today)
    })
    
    docs = conn[db][coll].find()
    for doc in docs:
        print(doc)

connect()
{'_id': ObjectId('5f0c774330ee6d07b96dd76c'), 'name': 'jvvp.tistory.com', 'today': '2020-07-14'}

 

오류 해결

ConfigurationError: Server at 127.0.0.1:27017 reports wire version 0, but this version of PyMongo requires at least 2 (MongoDB 2.6)

 

이와 같은 에러 발생시 다음과 같이 pymongo의 버전을 확인하고 다음 버전을 설치합니다.

pip install pymongo==3.4.0