繁体   English   中英

在ubuntu 16.04 LTS上运行mongodb

[英]Running mongodb on ubuntu 16.04 LTS

如何在Ubuntu 16.04 LTS上运行Mongodb作为服务? 几天前我将服务器升级到Ubuntu 16.04。 我注意到我重启时我的MongoDB服务没有启动。 试着用

sudo initctl start mongod

没有做的伎俩。 任何人都知道如何解决这个问题?

任何升级或安装Ubuntu 16.04(也称为Ubuntu Xenial xerus)的人都注意到一些旧服务停止运行。 此问题从版本15.04中已知,但我将重点关注上述版本。

这是MongoDB的情况。 简而言之,Ubuntu从新贵转移到了systemd。 解决这些问题的一个常见解决方案是切换回新贵。 我不认为这个选项是一个真正的解决方案,当然不是长期的。

该问题的真正解决方案(IMHO)是编写将启动MongodDB的systemd脚本。 不幸的是,MongoDB的人还没有供应一个。

所以我不得不从头开始写一篇。 要创建自己的一个,请按照以下步骤操作:

  1. 切换到root使用
    \n sudo su\n

或使用sudo执行以下所有步骤。

  1. 创建服务脚本(在此示例中,服务的名称是Mongodb)

    \n nano /lib/systemd/system/mongodb.service\n
  2. 文件内容应该是

    \n [单元]\n Description = MongoDB数据库服务\n 想要= network.target\n 之后= network.target\n\n [服务]\n ExecStart = / usr / bin / mongod --config /etc/mongod.conf\n ExecReload = / bin / kill -HUP $ MAINPID\n 重启=始终\n 用户= mongodb的\n 组=的MongoDB\n StandardOutput =系统日志\n StandardError的=系统日志\n\n [安装]\n WantedBy = multi-user.target\n

您也可以从这里下载文件: mongodb.service
以下是重要字段的简要说明:
ExecStart - 是要运行的命令。 Mongo将自己安装在/ usr / bin下,配置文件写在/ etc
用户 - mongod进程的uid。
Group - mongod进程的gid。 请注意,用户和组是由安装创建的。

现在开始mongodb:

sudo systemctl start mongodb

要停止mongodb服务使用:

sudo systemctl stop mongodb

在启动时启用mongodb

sudo systemctl enable mongodb.service

如果需要刷新服务使用:

 sudo systemctl daemon-reload

除了现在的一件事之外,最新版本的MongoDB完成了大部分工作。 Ubuntu 16.04.x上安装MongoDB后,运行如下命令:

$ sudo systemctl enable mongod.service
$ sudo systemctl daemon-reload

现在很可能mongod在每次启动时自动启动。


此解决方案也适用于出现此错误:

无法启动mongod.service:找不到单位mongod.service。

运行上面的命令后,下面的命令开始工作:

$ sudo service mongod start
$ mongo

同样,必须启用安装的所有服务才能运行。 例如,在安装Ops Manager(也称为MMS)之后,文档说要运行下面的推荐。

$ sudo systemctl start mongodb-mms.service

很可能Ubuntu没有启动该服务。 因为它尚未启用。 要启用它,只需运行以下命令:

$ sudo systemctl enable mongodb-mms.service
$ sudo systemctl daemon-reload

然后尝试启动该服务:

$ sudo systemctl enable mongodb-mms.service

就这样...

对于想要全新安装的人

我一直在努力奋斗1小时。 然后我发现这个页面安装就像做:

sudo apt-get update
sudo apt-get install mongodb

然后检查一切是否有效:

sudo service mongodb status

如果这对您有用,请告诉我!

3.2+的软件包包含upstart脚本。

首先,按照官方说明安装

# If you installed the ubuntu package, remove it, if not skip to key import
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 package
sudo apt-get install -y mongodb-org

然后取消mongodb.service作业(并启用并启动它)。 我相信它被掩盖了,因为该软件包也包含一个新手工作,所以你不希望它们都启动。 然而,在我们的案例中,这显然是我们想要的。

sudo systemctl unmask mongodb
sudo service mongod start

参考文献:

相关的JIRA问题

关于Ask Ubuntu的相关问题

sudo systemctl start mongod

在Ubuntu Linux 16.04上对我有用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM