Joonas' Note

Joonas' Note

Ubuntu 16.04 LTS에서 MongoDB 설치 오류 정리 본문

개발

Ubuntu 16.04 LTS에서 MongoDB 설치 오류 정리

2017. 11. 24. 21:44 joonas

    Ubuntu 16.04 LTS 에서 MongoDB 설치 오류 몇 가지


    1. systemd (systemctl) 관련 오류

    우분투에 몽고DB 설치까진 잘 되었는데 서비스 시작이 안될 때가 있다. 나는 아래와 같은 오류를 만나서 당황했다.

    ubuntu@joonas-aws:~$ mongo --version

    MongoDB shell version: 2.6.10

    ubuntu@joonas-aws:~$ sudo service mongod status

    ● mongod.service

       Loaded: not-found (Reason: No such file or directory)

       Active: inactive (dead)

    ubuntu@joonas-aws:~$ sudo service mongod start

    Failed to start mongod.service: Unit mongod.service not found.


    그리고 반복되는 재설치와 반복되는 에러 메시지..

    ubuntu@joonas-aws:~$ sudo service mongo

    mongo: unrecognized service

    ubuntu@joonas-aws:~$ sudo service mongod

    mongod: unrecognized service


    대체 뭐가 문제인가싶어서 서비스 스크립트를 직접 까봤다. 근데 비어있네?

    알고보니 심볼릭 링크되어있는 파일이라 수정이 불가한 상태였다.

    ubuntu@joonas-aws:~$ ls /etc/systemd/system/mongodb.service

    /etc/systemd/system/mongodb.service

    ubuntu@joonas-aws:~$ ls -l /etc/systemd/system/mongodb*

    lrwxrwxrwx 1 root root 9 Nov 24 12:10 /etc/systemd/system/mongodb.service -> /dev/null


    위 링크 파일을 지우고 새로 스크립트를 작성하면 해결된다.

    ubuntu@joonas-aws:~$ sudo vi /etc/systemd/system/mongodb.service

    [Unit]

    Description=High-performance, schema-free document-oriented database

    After=network.target


    [Service]

    User=mongodb

    ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf


    [Install]

    WantedBy=multi-user.target


    ubuntu@joonas-aws:~$ sudo systemctl start mongodb

    ubuntu@joonas-aws:~$ sudo systemctl status mongodb

    mongod.service - High-performance, schema-free document-oriented database

       Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)

       Active: active (running) since Fri 2017-11-24 12:19:58 UTC; 2s ago

         Docs: https://docs.mongodb.org/manual

     Main PID: 12854 (mongod)

        Tasks: 13

       Memory: 52.9M

          CPU: 62ms

       CGroup: /system.slice/mongod.service

               └─12854 /usr/bin/mongod --quiet --config /etc/mongod.conf


    2. 공식 매뉴얼에 누락된 것이 있다.

    이건 좀 억울했는데, 구글에 검색하면 매뉴얼이 다른 것이 2개 나온다.


    하나는 버전이 ~/manual~/ 이고 다른 하나는 ~/v3/~ 인데, 문제는 이 두 매뉴얼이 묘하게 서로 다르다는 것이다.


    [https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/]


    [https://docs.mongodb.com/v3.0/tutorial/install-mongodb-on-ubuntu/]


    apt 리스트 관련해서 Ubuntu 16.04 내용이 누락되어있다. 그리고 자세히 보면 deb 커맨드도 묘하게 다르다.

    이 작업을 건너뛰게되면 apt-get에서 mongodb-org 를 설치할 수 없다.

    ubuntu@joonas-aws:~$ sudo apt-get install -y mongodb-org

    Reading package lists... Done

    Building dependency tree       

    Reading state information... Done

    E: Unable to locate package mongodb-org

    2017년 11월 현재, 몽고 DB의 버전은 3.2.17이므로 3.0 버전이 아니라면 manual을 따르는 것이 좋아보인다.

    Comments