如何在系统启动时启动MongoDB服务器?

每次系统重启时,我都需要启动我的MongoDB服务器。我该如何配置它随着操作系统一起启动?我使用的是Ubuntu 11.04。

在启动后运行此命令:sudo systemctl enable mongod - nilakantha singh deo
10个回答

根据评论,在Ubuntu 18.04 LTS上,这似乎是解决方案:
systemctl enable mongodb.service

感谢@Adam。我在Debian jessie上也遇到了同样的“问题”,我的解决方案是:
systemctl enable mongod.service

也许他们改变了服务的名称。 我认为在Ubuntu中是一样的。

11在我的 Ubuntu Mate 16.04.2 LTS 上运行成功。 - Muhammad Gelbana
这对我来说有效(Ubuntu 16.04 LTS,MongoDB 3.4.4) - dragosrsupercool
2遗憾的是,官方文件中没有关于启动该服务的信息。 - UpTheCreek
5可能需要使用(sudo) systemctl start mongod命令来启动mongod服务。 - XoXo
2也适用于Ubuntu 18.04 LTS。 - 89n3ur0n
在Debian 9上对我也起作用了。 - hgoebl
2只有当我在Ubuntu 18.04 LTS上将mongod.service更改为mongodb.service时,才能正常工作。这很奇怪吗? - Adam
@Adam 不完全正确,mongod 是来自 mongodb-org 官方版本的守护进程。而 mongodb 是来自官方 Ubuntu 软件包安装的版本的守护进程。 - toing_toing
1sudo systemctl enable mongod - Adam
在Ubuntu中从来没有mongod.service,即使在16.04版本也是如此。monogodb.service已经存在一段时间了。 - muru
使用命令:sudo systemctl enable mongod - nilakantha singh deo

如果您使用高级包装工具(apt)安装MongoDB,它将配置启动脚本以在系统启动时自动运行Mongo。
步骤如下,首先配置apt以便能够下载Mongo软件包:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
sudo nano /etc/apt/sources.list

将此行添加到sources.list中,然后保存。
deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen

然后使用apt-get工具下载并安装Mongo。
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install mongodb-10gen

如果你想对配置进行任何更改,请编辑你的 mongodb.conf 文件并重新启动。
sudo nano /etc/mongodb.conf
sudo service mongod restart

5如果您希望稍后更改以不要在启动时自动启动MongoDB,请编辑/etc/init/mongodb.conf - kynan

控制所有init.d服务链接应使用update-rc.d工具完成。
即,在默认运行级别中启动mongod守护进程(即在启动时启动):
update-rc.d mongodb defaults

请参阅https://help.ubuntu.com/community/UbuntuBootupHowto以获取更多信息。该链接将告诉您关于如何设置开机启动程序的一切。

210gen MongoDB发行版不使用System-V风格的init脚本,您需要编辑/etc/init/mongodb.conf文件。 - kynan
我需要做这个吗? - tofutim

如果您使用的是Ubuntu 16.04 LTS,您可以在控制台中输入以下命令,使mongo在启动时自动启动:
sudo systemctl enable mongod
我已经在MongoDB Community Edition 3.6上使用过这种方法,它是有效的。重新启动您的机器,并通过输入以下命令来测试mongo是否正在运行:
sudo service mongod status

我正在使用Ubuntu的crontab。它运行得很好。为了能够编辑文件。
Sudo crontab –e 

添加这行到文件中
@reboot sudo service mongod start &

在末尾的"&"符号帮助它在后台工作。
按下Ctrl + x退出时,按提示按一次"Y"。并将文件名保持为"crontab"。

开机启动: sudo systemctl enable mongod验证Mongo状态,认证和版本: mongo --eval 'db.runCommand({ connectionStatus: 1 })' - nilakantha singh deo

如果您已经安装了MongoDB社区版(这是推荐的方式,因为它比在Ubuntu软件包仓库中分发的软件包更新更频繁),您可以通过upstart init脚本/etc/init/mongod.conf配置mongod的启动/停止行为,该脚本默认会在系统启动时自动启动守护进程。
start on runlevel [2345]
stop on runlevel [06]

如果你不想它自动启动,将这两行替换掉。
stop on runlevel [023456]

这会在任何人登录系统之前启动服务器吗? - Gabriel Fair
@GabrielFair 是的 - kynan

你可以使用systemctl命令在系统启动时启用你的Mongo服务。
创建一个服务,使其能够实现以下功能:
sudo nano /etc/systemd/system/mongodb.service

将内容放入文件中
[Unit]
Description=MongoDB Database Service
Wants=network.target
After=network.target

[Service]
ExecStart=/usr/bin/mongod --config /etc/mongod.conf
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
User=mongodb
Group=mongodb
StandardOutput=syslog
StandardError=syslog

之后,您将能够使用类似的服务命令。
sudo service mongod start|stop|restart

如果你想在机器启动时补偿它,你可以在/etc/init.d/下创建mongod文件。

chkconfig --levels 235 mongod on?
其中mongodb是您的服务名称。

210gen MongoDB分发默认不使用System-V风格的init脚本(尽管提供了一个),而是编辑/etc/init/mongodb.conf - kynan
@kynan 编辑它怎么做?我需要在mongod.conf文件中做出哪些更改/添加? - Kieveli
@Kieveli:请查看此答案 - kynan

如果按照MongoDB Ubuntu安装指南中所述,使用apt-get安装MongoDB,它将附带一个基本的启动脚本和配置文件。(强烈建议使用配置文件)

您也可以查看这里的一篇旧文章,其中链接到一个init.d脚本。

无论哪种情况,基本的前提是您正在设置一个服务,然后配置它与计算机一起启动和停止。这在服务器上是非常常见的技术,有很多教程可以用来完成这个任务。


2在16.04版本中不再是这种情况了。 - chovy

默认安装使用apt,您可以使用以下命令启动它。
sudo service mongod start