不幸的是,MongoDB 的官方 Ubuntu 包仍然停留在 2.6 上,这在这一点上是古老的(这个错误并没有因为生动、狡猾或狡猾而被发现)。
MongoDB 尚未发布适用于 16.04 (Xenial) 的软件包,那么如何使用 14.04 (Trusty) 软件包在 16.04 上安装 MongoDB 3.2+?
Ada*_*m C 14
这有点小技巧,但是是的,这是可以做到的。实际启动服务需要一个未记录的步骤,并且(很奇怪)除非您想手动进行 upstart 作业转换,否则您需要先安装 Ubuntumongodb
软件包,然后将其删除,以便您拥有可用的服务。直接安装 MongoDB 包不会在新的 16.04 上为您提供工作服务。
更新 - 2016 年 7 月:对此的官方修复(向软件包添加对 16.04 的支持)已在 3.3 dev 分支中作为SERVER-23043 的一部分完成- 并作为 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
Run Code Online (Sandbox Code Playgroud)
安装成功,多亏了 Ubuntu 包,我们拥有服务所需的所有部分,但尝试启动服务最初会失败:
$ sudo service mongodb start
Failed to start mongodb.service: Unit mongodb.service is masked.
Run Code Online (Sandbox Code Playgroud)
解决这个问题并不太难:
$ sudo systemctl unmask mongodb
Removed symlink /etc/systemd/system/mongodb.service.
Run Code Online (Sandbox Code Playgroud)
现在我们可以启用/启动服务,获取其状态等。
$ 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
Run Code Online (Sandbox Code Playgroud)
成功 - 我们得到了一个指向活动配置文件的很好的指针(它是旧key=value
格式,有关新推荐的 YAML 格式的示例,请参见此处)。
注意:实际上会有两个配置文件/etc/mongod.conf
,/etc/mongodb.conf
这要感谢我们安装的两个软件包之间的细微差别。当前活动服务点到系统默认的旧格式的一个/etc/mongodb.conf
-您可以通过移动/复制切换mongod.conf
到mongodb.conf
,如果你愿意的话,或者干脆直接编辑文件。
启动后,要进行测试,请使用mongo
shell连接到数据库:
$ 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]
Run Code Online (Sandbox Code Playgroud)
如果您想摆脱 THP 警告,请查看此答案。
归档时间: |
|
查看次数: |
19980 次 |
最近记录: |