Ubuntu 15.04에서 MongoDB 2.6이 시작되지 않음


51

나는 MongoDB를 2.6을 설치 클린 설치 우분투 15.04에 :

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
sudo apt-get update
sudo apt-get install -y mongodb-org

아무런 문제없이 끝났습니다. 그러나 시작하려고 할 때 다음 오류가 발생했습니다.

$ sudo service mongod start
Failed to start mongod.service: Unit mongod.service failed to load: No such file or directory.

이 문제를 어떻게 해결할 수 있습니까?

답변:


65

데비안 천명 저장소 에서 설치 했는데 제대로 작동합니다.

먼저 mongodb-org 패키지 및 모든 종속 항목을 제거하십시오.

sudo apt-get purge mongodb-org
sudo apt-get autoremove

작성한 이전 mongodb.list를 제거하십시오.

sudo rm /etc/apt/sources.list.d/mongodb.list

데비안 저장소를 대신 사용하십시오 :

echo "deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list

업데이트하고 다시 설치하십시오.

sudo apt-get update
sudo apt-get install -y mongodb-org

그런 다음 서버를 성공적으로 시작할 수 있습니다.

sudo service mongod start

또는

systemctl start mongod

(Roman Gaufman의 의견에 대한 회신으로 Ernie Hershey가 명시한대로 : https://jira.mongodb.org/browse/SERVER-17742 )


1
나는 그것을 시도하고
mongod

2
종속성을 자동으로 제거 하시겠습니까? 나도 그것을 얻었지만 mongodb 관련 패키지를 모두 제거하지 않았다는 것을 깨달았습니다. 그것들을 모두 제거하고 wheezy 저장소에서 설치하면 systemd에서 잘 작동합니다.
Dielson Sales

1
나에게 두통을 많이 저장
Srivathsa Harish Venkataramana

1
감사합니다. 퍼지 다음에 autoremove (거의 잊어 버림)가 트릭을 수행했습니다.
네나드 부키 체 비치

내 경우에는 14.04이지만 15.04 tailing /var/log/syslog일 가능성이 있습니다 . 실패한 시도를 확인한 다음 편집 /etc/init/mongodb.conf하면 비표준 데이터 디렉토리, 로그 디렉토리 또는 사용자 인스턴스를 사용하는 경우 도움이 될 수 있습니다.
Joes

25

MongoDB 팀은 Ubuntu 15.04를 지원하지 않으며 대신 16.04를 지원할 계획이라고 말합니다 ( https://jira.mongodb.org/browse/SERVER-17742 참조 ).

Ubuntu 15.04는 기본 init 시스템을 Upstart에서 systemd로 발전시킵니다. systemd로 MongoDB 3.0을 시작하는 데 성공하지 못했습니다.

다음을 설치하여 Upstart로 다시 전환 할 수 있습니다 upstart-sysv.

sudo apt-get install upstart-sysv

그런 다음 재부팅하면 MongoDB가 작동해야합니다.

Ubuntu 15.04에서 MongoDB를 쉽게 되돌릴 수있는 방법을 찾고 싶습니다.


2
이것이 지금까지이 문제를 해결하는 가장 좋은 방법입니다. 다른 방법을 아는 사람은 여기에서 공유하십시오.
Fernando Kosh

필자의 경우 upstart-sysv를 설치하고 다시 시작하면 충돌이 발생합니다.
Didac Montero

@DidacMontero 다른 옵션 은 wiki.ubuntu.com/SystemdForUpstartUsers 를 보십시오
Moshe Revah

우분투 15.04에서 나를 위해 일합니다. 해결 방법에 감사드립니다!
Lil 'Bits

이것은 나를 위해 완벽하게 작동했습니다.
slimflem

4

mongodb.org에서 직접 게시 한 패키지에서 설치합니다. Ubuntu 리포지토리에 제공된 패키지에서 설치해야합니다. mongodb.org가 남긴 구멍을 채우기 위해 데비안 / 우분투 패키지는 시스템 서비스 단위로 패치되었습니다.

( mongodb.serviceWWW 에는 단위 파일이 부족 하지 않습니다. 하나도 작성하기가 어렵지 않습니다.)

구체적 으로 Ubuntu 버전 15 용 mongodb-server 버전 2.6 패키지 에서 이러한 서비스 단위 를 찾을 수 있습니다. 패키지 만 설치하면됩니다.

(데비안 / 우분투 제공 서비스 단위는 몽고 권장 시스템 서비스 단위 지시문을 적용하지 않습니다 .)

추가 자료


그러나이 방법은 MongoDB를> = 3.0하고자하는 사람들을위한 문제가 해결되지 않는
Dielson 판매

그렇습니다. 두 번째 문단이나 그 밖의 책을 읽지 않았습니다.
JdeBP

4

Ubuntu 15.04 이상 및 Mongo 3.0 이상에서 작동하는 Systemd 스크립트를 만들었습니다.

[Unit]
Description=High-performance, schema-free document-oriented database
Documentation=man:mongod(1)
After=network.target

[Service]
Type=forking
User=mongodb
Group=mongodb
RuntimeDirectory=mongod
PIDFile=/var/run/mongod/mongod.pid
ExecStart=/usr/bin/mongod -f /etc/mongod.conf --pidfilepath /var/run/mongod/mongod.pid --fork
TimeoutStopSec=5
KillMode=mixed

[Install]
WantedBy=multi-user.target

https://gist.github.com/benileo/ada486d73f58dd93a0ee

데이터 디렉토리를 설정했는지 확인하십시오 /etc/mongod.conf


1
이것이 가장 좋은 해결책입니다.
J. Bruni

링크가 더 이상 작동하지 않음
Hotbelgo

링크를 수정했습니다.
benileo

반드시 최상의 솔루션으로 표시해야합니다.
Wédney Yuri

1

이것이 최선의 대답이 아닙니까? 중복 질문에서 : https://askubuntu.com/a/694226/255468 by @sclausen


systemd 용 서비스 파일이 부족합니다. Kartik처럼 https://docs.mongodb.org/manual/installation/에 설명 된 것과 다른 저장소를 사용하는 것처럼 다시 시작하지 않아도됩니다 .

다음 내용으로 /lib/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/mongodb.conf

[Install]
WantedBy=multi-user.target



0

이 답변의 대부분은 Mongo 3.0과 관련이 있지만 질문은 2.6에 대해 구체적으로 묻습니다.

10gen의 Debian 저장소를 사용하여 2.6을 성공적으로 설치했습니다. 이것은 Ubuntu 15.04에서 완벽하게 작동하는 것으로 보입니다.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo 'deb http://downloads-distro.mongodb.org/repo/debian-sysvinit dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
sudo apt-get update
sudo apt-get install mongodb-org

출처 : Ubuntu 14.10, 14.04 및 12.04 LTS에 MongoDB 2.6을 설치하는 방법


0

질문은 버전 2.6에 관한 것이지만. Unit mongod.service failed to load버전 3.0.6의 Ubuntu 15.04에서 정확히 동일한 오류가 발생 했습니다. 위의 Dielson Sales에서 언급 한 것과 동일한 wheezy 저장소를 사용하여 궁극적으로 해결되었습니다.

그리고 설치 후 (@Dielson Sales에서 자세히 설명한 단계에 따라) 위의 오류가 발생했습니다. 마지막으로 해결 한 방법은 다음과 같습니다.

A) MongoDB의 기본 데이터 저장소 파일을 / var / lib / mongodb 에서 / data / db로 변경

  • 먼저 새 / data / db 디렉토리를 작성하십시오. sudo mkdir -p /data/db

  • mongod.conf 파일을 열고 아래와 sudo gedit /etc/mongod.conf같이“dbpath”줄을 변경하십시오

  • 교체 DBPATH =은 / var / lib 디렉토리 / MongoDB를을 TO = / 데이터 / DB를 DBPATH 하고 파일을 저장합니다.

  • 그런 다음 이전 기본 / var / lib / mongodb를 삭제하십시오.

  • 이제 mongod 사용자가 소유 한 모든 디렉토리 / 파일을 만들어야합니다

B) 그럼 sudo chown -R mongodb:mongodb /data/db

그리고 마침내 나는 몽고를 시작할 수 있습니다. sudo service mongod start

그리고 서비스가 실행중인 chcek- sudo systemctl status mongod 아래와 비슷한 메시지가 표시되어야합니다.

Loaded: loaded (/etc/init.d/mongod)

Active: active (running) since Thu 2015-09-03 04:57:49 IST; 7s ago

블로그 게시물 에 내 단계를 자세히 설명하십시오.


0

먼저 mongodb를 다운로드하십시오 :

curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz

다운로드 추출 :

tar -zxvf mongodb-linux-x86_64-3.0.6.tgz

-dbpath 속성으로 mongod (mongodb-linux-x86_64-3.0.6.tgz / bin / mongod)를 실행하십시오.

sudo ./mongod --dbpath /path/of/the/directory

빈 디렉토리가 될 수 있습니다.

마지막으로 mongo (mongodb-linux-x86_64-3.0.6.tgz / bin / mongo)를 실행하십시오.

./mongo

내 우분투 15에서 일했습니다 :)

내 영어 실력이 미안해 브라질에 살아


0

몇 시간을 검색 한 후 해결책은 다음 명령을 사용하여 우분투를 15.04에서 16.04로 업그레이드하는 것입니다.

1 단계

sudo do-release-upgrade -d 

mongodb를 제거하는 것보다 몇 분이 걸리므로 당황하지 마십시오.

2 단계

sudo apt-get purge mongodb-org 
sudo apt-get autoremove`  
rm /etc/apt/sources.list.d/mongodb-org-3.0.list`  

이제 mongodb를 설치하지만 다음 소스를 사용하십시오.

echo 'deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main' | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list

3 단계

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10  
echo ‘deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main’ | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list
sudo apt-get update
sudo apt-get install mongodb-org
sudo service mongod status

그리고 그게 다야.

참고 : 'E :와 같은 오류가 발생하면 첫 줄에'deb '를 입력하십시오. . . mongodb-org-3.0.list 파일에

gedit를 사용하여이 파일을 가져 와서 문장의 시작과 끝에서 '를 삭제하기 만하면됩니다.


이 부분은 "솔루션이 15.04에서 16.04로 우분투를 업그레이드하는 것이 었습니다 ..."는 16.04가 아직 릴리스되지 않았기 때문에 현재로서는 의미가 없습니다.
clearkimura

1
@clearkimura 그렇습니다. 글쎄, 알파에서. 그리고 Ubuntu 16.04의 두 번째 일일 빌드는 내 컴퓨터에 설치되어 있으며 아무런 문제가 없습니다.
스타 OS

0

Ubuntu 15.04+는 upstart 대신 systemd를 사용합니다 . MongoDB의 공식 설치 안내서로 시작하십시오 . 그런 다음 공식을 사용하십시오 mongod.service.

[Unit]
Description=High-performance, schema-free document-oriented database

[Service]
User=mongod
Group=mongod
Environment="OPTIONS=--quiet -f /etc/mongod.conf"
ExecStart=/usr/local/bin/mongod $OPTIONS run
PIDFile=/var/run/mongodb/mongod.pid

[Install]
WantedBy=multi-user.target

서비스 다운로드 및 패치, 설치 및 dir + permissions 설정

$ curl -OL https://raw.githubusercontent.com/mongodb/mongo/1663f45b4e33e058a0203a81f50574a870882c34/rpm/mongod.service
$ sed -i 's/\/usr\/local/\/usr/g' mongod.service
$ sed -i '/Desc/a After=network.target' mongod.service
$ sudo sed -i '0,/\/var\/lib\/mongodb/s//\/data\/db/' /etc/mongod.conf
$ sudo cp mongod.service /lib/systemd/system/mongo.service
$ sudo mkdir -p /data/db
$ sudo chown -R mongodb:mongodb /data
$ sudo systemctl daemon-reload
$ sudo systemctl enable mongod

서비스 시작

$ sudo systemctl start mongod

서비스 상태 확인

$ sudo systemctl status mongod

0

당신은 당신의 명령에 오타를 만들었습니다.

대신 이것을 사용해보십시오 : sudo service mongodb start

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.