14.04 MongoDB 패키지를 16.04와 함께 사용할 수 있습니까?


10

불행히도 MongoDB의 공식 우분투 패키지는 여전히 2.6에 머물러 있습니다.이 시점에서 고대입니다 ( 이 버그 는 생생하고 현명하거나 제니 얼을 위해 선택되지 않았습니다).

MongoDB는 아직 16.04 (Xenial) 용 패키지를 출시하지 않았으므로 14.04 (Trusty) 패키지를 사용하여 16.04에 MongoDB 3.2+를 설치하려면 어떻게해야합니까?


그래 넌 할수있어. 업그레이드하는 경우 쉬워야합니다. 16.04를 새로 설치 한 경우 다음 단계를 따르십시오. askubuntu.com/questions/724749/…
KhoPhi

@Rexford 아래 답변에서 볼 수 있듯이 16.04에서는 이전 패키지를 사용하는 것이 쉽지 않습니다 (새로 설치하면 서비스가 제대로 설치되지 않음)
Adam C

답변:


14

그것은 약간의 해킹이지만 그렇습니다. 이것은 가능합니다. 실제로 서비스를 시작하는 데 필요한 문서화되지 않은 단계가 있으며, 시작 작업 변환을 수동으로 처리하려는 경우가 아니라면 mongodb먼저 Ubuntu 패키지 를 설치 한 다음 사용 가능한 서비스가되도록 제거해야합니다. MongoDB 패키지를 직접 설치해도 새로운 16.04에서 작동하는 서비스제공되지 않습니다 .

업데이트-2016 년 7 월 : 이에 대한 공식 수정 (패키지에 16.04에 대한 지원 추가)이 SERVER-23043의 일부로 3.3 dev 분기에서 완료되었으며 3.2의 일부로 3.2 시리즈의 백 포트로 릴리스되었습니다 . 도 7 . 따라서 3.2.7 이상을 사용하는 경우이 작업을 수행 필요 가 없으며 공식 MongoDB 패키지 설치가 작동해야합니다.

어쨌든 추가 / 제거를 수행 한 후 여기에 요약 된 14.04 의 일반적인 지침 을 따르십시오 .

# install the Ubuntu package (to get the service set up correctly)
sudo apt-get install mongodb
# Now remove it and continue with the MongoDB instructions
sudo apt-get remove mongodb
sudo apt-get autoremove
# import key
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
# add trusty repos
echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
# update apt
sudo apt-get update
# install the MongoDB package
sudo apt-get install -y mongodb-org

설치가 완료되고 Ubuntu 패키지 덕분에 서비스에 필요한 모든 요소가 있지만 처음에는 서비스를 시작하지 못합니다.

$ sudo service mongodb start
Failed to start mongodb.service: Unit mongodb.service is masked.

이 문제를 해결하는 것은 그리 어렵지 않습니다.

$ sudo systemctl unmask mongodb
Removed symlink /etc/systemd/system/mongodb.service.

이제 서비스를 활성화 / 시작하고 상태를 확인할 수 있습니다.

$ sudo service mongodb enable
$ sudo service mongodb start
$ sudo service mongodb status
● mongodb.service - LSB: An object/document-oriented database
   Loaded: loaded (/etc/init.d/mongodb; bad; vendor preset: enabled)
   Active: active (running) since Thu 2016-04-14 16:40:35 IST; 7s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 2849 ExecStart=/etc/init.d/mongodb start (code=exited, status=0/SUCCESS)
 Main PID: 1593 (code=exited, status=0/SUCCESS)
    Tasks: 13 (limit: 512)
   Memory: 51.9M
      CPU: 100ms
   CGroup: /system.slice/mongodb.service
           └─2861 /usr/bin/mongod --config /etc/mongodb.conf

성공-우리는 활성 구성 파일에 대한 좋은 포인터를 얻습니다 (이전 key=value형식이므로 최신 권장 YAML 형식의 예는 여기 를 참조 하십시오 ).

참고 : 실제로이 개 설정 파일이있을 것입니다 /etc/mongod.conf그리고 /etc/mongodb.conf우리가 설치 한 두 패키지 사이에 약간의 차이 덕분에. 기본적으로 이전 형식의 하나에 지금 활성화 된 서비스 포인트 /etc/mongodb.conf- 당신은 복사 / 이동하여 전환 할 수 있습니다 mongod.confmongodb.conf당신이 그렇다면 소원을, 또는 단순히 파일을 직접 편집 할 수 있습니다.

테스트가 시작되면 mongo쉘 을 사용하여 데이터베이스에 연결하십시오 .

$ mongo
MongoDB shell version: 3.2.5
connecting to: test
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
    http://docs.mongodb.org/
Questions? Try the support group
    http://groups.google.com/group/mongodb-user
Server has startup warnings: 
2016-04-14T16:40:34.962+0100 I CONTROL  [initandlisten] 
2016-04-14T16:40:34.962+0100 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2016-04-14T16:40:34.962+0100 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2016-04-14T16:40:34.962+0100 I CONTROL  [initandlisten] 
2016-04-14T16:40:34.962+0100 I CONTROL  [initandlisten] 
2016-04-14T16:40:34.962+0100 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2016-04-14T16:40:34.962+0100 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2016-04-14T16:40:34.962+0100 I CONTROL  [initandlisten] 
2016-04-14T16:40:34.962+0100 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2016-04-14T16:40:34.962+0100 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2016-04-14T16:40:34.962+0100 I CONTROL  [initandlisten] 

THP 경고를 제거하려면 이 답변을 확인하십시오 .


1
위의 첫 번째 코드 블록 이후에 running sudo service mongodb start은을 반환합니다 Failed to start mongodb.service: Unit mongodb.service not found.
user1063287

1
systemd 용 서비스 파일을 작성하여 위의 문제를 해결하려고했습니다 ( askubuntu.com/a/694226/367134 ). 결과 : sudo service mongodb start아무것도 반환하지 않습니다. sudo service mongodb status로 실패한 메시지를 반환합니다 status=2. 이 문제를 해결하기 위해 새로 만든 서비스 파일의 경로를에서로 변경 /etc/mongodb.conf했습니다 /etc/mongod.conf. 원래 답변을 바탕으로 시스템 시작시 mongodb를 어떻게 시작합니까?
user1063287

1
mongodb는 다음과 같은 추가 작업으로 시스템 시작시 시작할 수있었습니다 sudo systemctl enable mongodb.. 참조 : digitalocean.com/community/tutorials/…
user1063287

1
아, 확신 나는 그냥 머리에 대한 감사를 복사 / 내 지시를 붙여, 아니면 유사 실패했을 때 밖으로 그 라인을 왼쪽
아담 C

1
3.2.8에서는 확실히 수정되지 않았습니다. 마지막 코멘트를 참조하십시오 . 3.2.9에서 다루어야한다.
Goran Miskovic

-1

이미 설치 한 경우 다음을 수행하여 mongodb를 제거하십시오.

sudo apt-get remove mongodb
sudo apt-get autoremove

digitalocean https://www.digitalocean.com/community/tutorials/how-to-install-mongodb-on-ubuntu-16-04 에서 권장 사항을 시도 하십시오.


3
귀하의 답변이 유효 할 수 있지만 여기 링크에 나열된 단계를 제공하는 것이 좋습니다. 링크와 그 내용은 시간이 지남에 따라 변경되어 답변을 쓸모 없게 만들 수 있습니다.
Videonauth
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.