불행히도 MongoDB의 공식 우분투 패키지는 여전히 2.6에 머물러 있습니다.이 시점에서 고대입니다 ( 이 버그 는 생생하고 현명하거나 제니 얼을 위해 선택되지 않았습니다).
MongoDB는 아직 16.04 (Xenial) 용 패키지를 출시하지 않았으므로 14.04 (Trusty) 패키지를 사용하여 16.04에 MongoDB 3.2+를 설치하려면 어떻게해야합니까?
불행히도 MongoDB의 공식 우분투 패키지는 여전히 2.6에 머물러 있습니다.이 시점에서 고대입니다 ( 이 버그 는 생생하고 현명하거나 제니 얼을 위해 선택되지 않았습니다).
MongoDB는 아직 16.04 (Xenial) 용 패키지를 출시하지 않았으므로 14.04 (Trusty) 패키지를 사용하여 16.04에 MongoDB 3.2+를 설치하려면 어떻게해야합니까?
답변:
그것은 약간의 해킹이지만 그렇습니다. 이것은 가능합니다. 실제로 서비스를 시작하는 데 필요한 문서화되지 않은 단계가 있으며, 시작 작업 변환을 수동으로 처리하려는 경우가 아니라면 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.conf
에 mongodb.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 경고를 제거하려면 이 답변을 확인하십시오 .
sudo service mongodb start
은을 반환합니다 Failed to start mongodb.service: Unit mongodb.service not found
.
sudo service mongodb start
아무것도 반환하지 않습니다. sudo service mongodb status
로 실패한 메시지를 반환합니다 status=2
. 이 문제를 해결하기 위해 새로 만든 서비스 파일의 경로를에서로 변경 /etc/mongodb.conf
했습니다 /etc/mongod.conf
. 원래 답변을 바탕으로 시스템 시작시 mongodb를 어떻게 시작합니까?
sudo systemctl enable mongodb
.. 참조 : digitalocean.com/community/tutorials/…
이미 설치 한 경우 다음을 수행하여 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 에서 권장 사항을 시도 하십시오.