运行 mongodb ubuntu 16.04 LTS
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)的人都注意到一些旧服务停止了 运行ning。
此问题从 15.04 版本开始已知,但我将重点关注以上版本。
MongoDB 就是我的情况。长话短说,Ubuntu 从 upstart 转向 systemd。对于这些问题,一种常见的解决方案是切换回新贵。我不认为该选项是真正的解决方案,当然不会长久 运行。
该问题的真正解决方案(恕我直言)是编写将启动 MongodDB 的 systemd 脚本。不幸的是 MongoDB 人员还没有提供一个。
所以我不得不从头开始写一个。要创建您自己的一个,请按照以下步骤操作:
- 切换到root使用
sudo su
或使用 sudo 执行以下所有步骤。
创建一个服务脚本(在本例中服务的名称是 Mongodb)
nano /lib/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
[Install]
WantedBy=multi-user.target
您也可以从这里下载文件:
mongodb.service
以下是重要字段的简要说明:
ExecStart - 是 运行 的命令。 Mongo 安装在 /usr/bin 下,配置文件写在 /etc
User - 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
3.2+ 的软件包包含 upstart 脚本。
首先关注官方instructions to install:
# 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
参考文献:
对于想要全新安装的人
我为此苦苦挣扎了 1 小时。然后我发现this page
安装就像做一样简单:
sudo apt-get update
sudo apt-get install mongodb
然后检查是否一切正常:
sudo service mongodb status
让我知道这是否适合您!
MongoDB 的最新版本可以做大部分事情,但现在只有一件事。
在 Ubuntu 16.04.x
上安装 MongoDB
后,运行 命令如下:
$ sudo systemctl enable mongod.service
$ sudo systemctl daemon-reload
现在很可能 mongod
在每次启动时自动启动。
此解决方案也适用于出现此错误的情况:
Failed to start mongod.service: Unit mongod.service not found.
在运行上面的命令之后,下面的命令开始工作:
$ sudo service mongod start
$ mongo
同样,安装的所有服务必须启用运行。
例如,在安装 Ops Manager (a.k.a MMS) 之后,文档对 运行 下面的推荐进行了说明。
$ sudo systemctl start mongodb-mms.service
很有可能Ubuntu没有启动服务。因为还没有启用。要启用它,只需 运行 下面的命令:
$ sudo systemctl enable mongodb-mms.service
$ sudo systemctl daemon-reload
然后尝试启动服务:
$ sudo systemctl enable mongodb-mms.service
就这些了...
sudo systemctl start mongod
对我有用 Ubuntu Linux 16.04
如何在 Ubuntu 16.04 LTS 上 运行 Mongodb 作为一项服务? 几天前,我将服务器升级到 Ubuntu 16.04。我注意到我的 MongoDB 服务在我重新启动时没有启动。 尝试使用
sudo initctl start mongod
没有成功。 有人知道如何解决这个问题吗?
任何升级或安装 Ubuntu 16.04(也称为 Ubuntu Xenial xerus)的人都注意到一些旧服务停止了 运行ning。 此问题从 15.04 版本开始已知,但我将重点关注以上版本。
MongoDB 就是我的情况。长话短说,Ubuntu 从 upstart 转向 systemd。对于这些问题,一种常见的解决方案是切换回新贵。我不认为该选项是真正的解决方案,当然不会长久 运行。
该问题的真正解决方案(恕我直言)是编写将启动 MongodDB 的 systemd 脚本。不幸的是 MongoDB 人员还没有提供一个。
所以我不得不从头开始写一个。要创建您自己的一个,请按照以下步骤操作:
- 切换到root使用
sudo su
或使用 sudo 执行以下所有步骤。
创建一个服务脚本(在本例中服务的名称是 Mongodb)
nano /lib/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 [Install] WantedBy=multi-user.target
您也可以从这里下载文件:
mongodb.service
以下是重要字段的简要说明:
ExecStart - 是 运行 的命令。 Mongo 安装在 /usr/bin 下,配置文件写在 /etc
User - 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
3.2+ 的软件包包含 upstart 脚本。
首先关注官方instructions to install:
# 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
参考文献:
对于想要全新安装的人
我为此苦苦挣扎了 1 小时。然后我发现this page 安装就像做一样简单:
sudo apt-get update
sudo apt-get install mongodb
然后检查是否一切正常:
sudo service mongodb status
让我知道这是否适合您!
MongoDB 的最新版本可以做大部分事情,但现在只有一件事。
在 Ubuntu 16.04.x
上安装 MongoDB
后,运行 命令如下:
$ sudo systemctl enable mongod.service
$ sudo systemctl daemon-reload
现在很可能 mongod
在每次启动时自动启动。
此解决方案也适用于出现此错误的情况:
Failed to start mongod.service: Unit mongod.service not found.
在运行上面的命令之后,下面的命令开始工作:
$ sudo service mongod start
$ mongo
同样,安装的所有服务必须启用运行。 例如,在安装 Ops Manager (a.k.a MMS) 之后,文档对 运行 下面的推荐进行了说明。
$ sudo systemctl start mongodb-mms.service
很有可能Ubuntu没有启动服务。因为还没有启用。要启用它,只需 运行 下面的命令:
$ sudo systemctl enable mongodb-mms.service
$ sudo systemctl daemon-reload
然后尝试启动服务:
$ sudo systemctl enable mongodb-mms.service
就这些了...
sudo systemctl start mongod
对我有用 Ubuntu Linux 16.04