不幸的是,MongoDB的官方Ubuntu软件包仍然停留在2.6上,这在当时是很古老的(此错误并未因生动,狡猾或xenial而被拾取)。
MongoDB尚未发布适用于16.04(Xenial)的软件包,那么如何使用14.04(Trusty)软件包在16.04上安装MongoDB 3.2+?
不幸的是,MongoDB的官方Ubuntu软件包仍然停留在2.6上,这在当时是很古老的(此错误并未因生动,狡猾或xenial而被拾取)。
MongoDB尚未发布适用于16.04(Xenial)的软件包,那么如何使用14.04(Trusty)软件包在16.04上安装MongoDB 3.2+?
Answers:
有点hack,但是可以的。要真正启动该服务,需要执行一个未记录的步骤,(足够奇怪的是)除非您希望手动进行新手作业转换,否则您需要先安装Ubuntu mongodb
软件包,然后再删除它,以便获得可用的服务。直接安装MongoDB软件包不会为您提供全新的16.04 服务。
更新-2016年7月:针对此问题的正式修补程序(对软件包增加了对16.04的支持)已作为SERVER-23043的一部分在3.3 dev分支中完成-并已作为3.2系列的backport作为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
return 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