关键词:
【中文标题】在 ubuntu 16.04 LTS 上运行 mongodb【英文标题】:Running mongodb on ubuntu 16.04 LTS 【发布时间】:2016-08-29 02:12:36 【问题描述】:如何在 Ubuntu 16.04 LTS 上将 Mongodb 作为服务运行? 几天前,我将服务器升级到了 Ubuntu 16.04。我注意到我的 MongoDB 服务在我重新启动时没有启动。 尝试使用
sudo initctl start mongod
没有成功。 有人知道如何解决这个问题吗?
【问题讨论】:
【参考方案1】:任何升级或安装 Ubuntu 16.04(也称为 Ubuntu Xenial xerus)的人都注意到一些旧服务停止运行。 这个问题从 15.04 版本就知道了,但我会重点关注上面的版本。
这就是我对 MongoDB 的情况。长话短说,Ubuntu 从新贵转向了 systemd。对于这些问题,一种常见的解决方案是切换回新贵。我不认为该选项是真正的解决方案,从长远来看肯定不是。
该问题的真正解决方案(恕我直言)是编写将启动 MongodDB 的 systemd 脚本。不幸的是,MongoDB 的人还没有提供一个。
所以我不得不从头开始写一个。要创建您自己的一个,请按照以下步骤操作:
-
切换到根使用
须藤
或使用 sudo 执行以下所有步骤。
创建一个服务脚本(在这个例子中服务的名字是Mongodb)
纳米/lib/systemd/system/mongodb.service文件内容应该是
[单元] 描述=MongoDB 数据库服务 想要=network.target 之后=network.target [服务] ExecStart=/usr/bin/mongod --config /etc/mongod.conf ExecReload=/bin/kill -HUP $MAINPID 重启=总是 用户=mongodb 组=mongodb 标准输出=系统日志 标准错误=系统日志 [安装] WantedBy=多用户.target您也可以从这里下载文件: mongodb.service 以下是重要字段的简要说明:ExecStart - 是要运行的命令。 Mongo自己安装在/usr/bin下,配置文件写在/etcUser - mongod进程的uid。Group - gid mongod 进程。请注意,用户和组是由安装创建的。
现在开始 mongodb:
sudo systemctl start mongodb
停止使用 mongodb 服务:
sudo systemctl stop mongodb
在启动时启用 mongodb
sudo systemctl enable mongodb.service
如果您需要刷新服务,请使用:
sudo systemctl daemon-reload
【讨论】:
我一直看到这条消息:Failed to start mongodb.service: Unit mongodb.service is masked.
这是什么意思? ://
更新:我做了一个sudo apt-get install --reinstall mongodb
,现在一切都很好。感谢这个人:ubuntuforums.org/…
嗨。当您第一次尝试运行 mongodb 时,使用 mongod,所有新生成的文件都具有 root 权限。这不好,因为 mongodb 使用自己的用户组运行。
我不得不修改它以使用 /etc/mongodb.conf 而不是 /etc/mongod.conf - 但除此之外它运行良好。谢谢。【参考方案2】:
最新版本的 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(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
就是这样……
【讨论】:
谢谢兄弟,你救了我的一天 其他建议的解决方案在我的 Ubuntu 16.04 和 MongoDB 3.4.1 上不起作用。这个做到了。 谢谢,刚刚在 Ubuntu 16.04.3 LTS 上成功安装了 MongoDB 版本 3.4.10 sudo systemctl enable mongodb.service 在 Ubuntu 18 LTS 上为我工作 这对我来说是最好的答案【参考方案3】:对于想要全新安装的用户
我已经为此苦苦挣扎了 1 个小时。然后我找到this page 安装就这么简单:
sudo apt-get update
sudo apt-get install mongodb
然后检查是否一切正常:
sudo service mongodb status
让我知道这是否适合你!
【讨论】:
这里是status
命令输出:mongodb.service | Loaded: not-found (Reason: No such file or directory) | Active: inactive (dead)
在 Ubuntu 16.04 上。
是的,它在 Ubuntu 16.04(Xenial) 中运行。这是终端输出:- ● mongodb.service - 一个面向对象/文档的数据库 已加载:已加载(/lib/systemd/system/mongodb.service;已启用;供应商预设:已启用) 活动:自 2016 年星期五以来处于活动状态(运行)- 12-02 20:57:58 IST; 14 分钟前 Docs: man:mongod(1) Main PID: 9827 (mongod) CGroup: /system.slice/mongodb.service └─9827 /usr/bin/mongod --config /etc/mongodb.conf Dec 02 20:57 :58 bhabani-X550CC systemd[1]: 启动了一个面向对象/文档的数据库。
我也收到非活动(死)消息。但它的工作。
它的 mongod
不是 mongodb
@chovy 我不这么认为。你在说什么命令?【参考方案4】:
3.2+ 的软件包包含新贵脚本。
首先关注官方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
参考资料:
relevant JIRA issue
related question on Ask Ubuntu
【讨论】:
我的问题是关于 MongoDb 的旧版本 (3.0.5)。但是感谢您的解释sudo systemctl unmask mongodb
是在 ubuntu 16.04 上为我解决此问题的缺失部分
在 Ubuntu 16.04 中,sudo service mongodb enable
总是出现 mongodb: unrecognized service
错误。但提供的说明很有帮助,请点赞。
你如何让它在启动时启动呢?我正在使用这个版本,但是当我重新启动服务器时,mongod 没有出现。【参考方案5】:
sudo systemctl start mongod
在 Ubuntu Linux 16.04 上对我有用
【讨论】:
好吧,是时候修复它了。在发帖时,他们有存储库链接问题......我正在尝试运行 CUDA 示例,但我在 Ubuntu 16.04 LTS 上遇到了 openGL (libGLEW.a) 问题
】我正在尝试运行CUDA示例,但我在Ubuntu16.04LTS上遇到了openGL(libGLEW.a)问题【英文标题】:IamtryingtoruntheCUDAexamplebutihaveproblemswithopenGL(libGLEW.a)onUbuntu16.04LTS【发布时间】:2017-04-2100:36:51【问题描述】:我正在尝试在带有NsightEclipse版的... 查看详情
在 16.04 LTS 上安装 Docker
....04LTS【发布时间】:2016-08-1103:00:34【问题描述】:如何在Ubuntu16.04LTS上安装docker【问题讨论】:docs.docker.com/engine/installation/linux/ubuntulinux涵盖16.04如果您有任何文章可以在Ubuntu16.04LTS上安装docker私有注册表,请 查看详情
在 ubuntu 16.04 lts 上安装 numba 0.30.1
】在ubuntu16.04lts上安装numba0.30.1【英文标题】:Installnumba0.30.1onubuntu16.04lts【发布时间】:2017-06-2601:51:36【问题描述】:如何在Ubuntu16.04LTS上为Python3安装当前版本(0.30.1)的numba?我的Python版本是3.5.2,我安装了Ubuntu的准系统(我认为... 查看详情
设置sublime文本3以在ubuntu16.04lts上运行和编译java时出错
我是SublimeText3的新手,我想在SublimeText3上运行和编译java代码。但是,我得到了这个奇怪的错误:/bin/bash:javac:commandnotfound[Finishedin0.0swithexitcode127]和我在/home/***/Downloads/sublime_text_3/Packages/Java.sublime-package/JavaC.sub 查看详情
如何在 Ubuntu 16.04 LTS 64 位上安装/启动 Postman 本机 v4.10.3?
】如何在Ubuntu16.04LTS64位上安装/启动Postman本机v4.10.3?【英文标题】:Howtoinstall/startPostmannativev4.10.3onUbuntu16.04LTS64-bit?【发布时间】:2017-08-1704:57:14【问题描述】:我下载了PostmanforLinux(来自https://www.getpostman.com/apps),将.tar.gz文... 查看详情
如何在 Ubuntu 16.04LTS 中禁用透明大页面 (THP)
】如何在Ubuntu16.04LTS中禁用透明大页面(THP)【英文标题】:HowtodisableTransparentHugePages(THP)inUbuntu16.04LTS【发布时间】:2017-06-2811:01:25【问题描述】:我正在设置一个带有3个运行Ubuntu16.04LTS的virtualboxVM的ambari集群。但是我收到以下警告... 查看详情
sh在ubuntu16.04lts上安装watchman(https://facebook.github.io/watchman)(代码片段)
在ubuntu16.04lts下搭建java开发环境
安装JDK1.71.下载所需jdk版本jdk-7u79-linux-x64.tar.gz:jdk历史版本下载路径2.解压文件解压后新增一个文件夹如下:3.创建一个文件夹保存解压后的文件:(/usr/lib一般存放不能直接运行的,却是许多程序运行所必需的一些函数库文件lin... 查看详情
在ubuntu16.04lts上安装python3.6.0(代码片段)
原文连接:https://segmentfault.com/a/1190000007912666最近Python3发布了新版本Python3.6.0,好像又加入了不少黑魔法!~由于暂时不能使用apt-get的方式安装Python3.6,所以还是直接编译源码安装吧。官网上提供了Mac和Windows... 查看详情
如何使用 apt-get 在 Ubuntu 18.04/17.04/16.10/16.04 LTS/15.10/15.04/14.10/14.04 LTS/13.10/13.04 上安装 Maven
】如何使用apt-get在Ubuntu18.04/17.04/16.10/16.04LTS/15.10/15.04/14.10/14.04LTS/13.10/13.04上安装Maven3?[关闭]【英文标题】:HowtoinstallMaven3onUbuntu18.04/17.04/16.10/16.04LTS/15.10/15.04/14.10/14.04LTS/13.10/13.04byusingapt-get?[closed]【 查看详情
Play 在 ubuntu 12.04 LTS 上运行时给出“非法指令”
】Play在ubuntu12.04LTS上运行时给出“非法指令”【英文标题】:Playgives"illegalinstruction"whenrunningonubuntu12.04LTS【发布时间】:2012-06-2113:13:04【问题描述】:最近我们开始使用play-framework开发一个项目。由于我的开发人员是分布... 查看详情
XAMPP Apache 无法在 Ubuntu 20.04.3 LTS 上运行
】XAMPPApache无法在Ubuntu20.04.3LTS上运行【英文标题】:XAMPPApachenotworkingonUbuntu20.04.3LTS【发布时间】:2021-11-1400:00:57【问题描述】:我已经搜索了几个小时,但找不到解决方案。我已经尝试了很多东西,甚至开始列出这些东西。因此... 查看详情
在 ubuntu 16.04 上更新 nodejs
】在ubuntu16.04上更新nodejs【英文标题】:updatingnodejsonubuntu16.04【发布时间】:2017-05-0222:22:43【问题描述】:我最近在使用node-v命令时在我的ubuntu16.04中查看节点版本,它显示我的版本为6.9.1,但是当nodejs-v它显示6.9.2之前使用此命... 查看详情
ubuntu16.04lts成功编译android6.0源码教程(转)
1前言经过3天奋战,终于在Ubuntu16.04上把Android6.0的源码编译出来了,各种配置,各种error,各种爬坑,特写此博客记录爬坑经历。先上图,Ubuntu上编译完后成功运行模拟器,如图:2编译环境UbuntuKylin16.04LTSAndroid6.0_r1OpenJDK73准备工... 查看详情
如何在 Ubuntu 18.04.2 LTS 上使用 OpenJDK 8 运行 Java FX?
】如何在Ubuntu18.04.2LTS上使用OpenJDK8运行JavaFX?【英文标题】:HowdoIgetJavaFXrunningwithOpenJDK8onUbuntu18.04.2LTS?【发布时间】:2019-10-0314:19:30【问题描述】:尝试在环境中编译JavaFX应用程序时:java-versionopenjdkversion"1.8.0_212"OpenJDKRuntimeEnviron... 查看详情
在 Ubuntu 20.4 LTS 上使用 GPU (CUDA-11.0) 运行代码时的 TensorFlow 问题
】在Ubuntu20.4LTS上使用GPU(CUDA-11.0)运行代码时的TensorFlow问题【英文标题】:TensorFlowissuewhenrunningcodewithGPU(CUDA-11.0)onUbuntu20.4LTS【发布时间】:2021-06-0521:41:30【问题描述】:无法加载动态库“libcusparse.so.11”;dlerror:libcusparse.so.11:无... 查看详情
如何在ubuntu16.04和14.04lts中安装postgresql9.5
参考技术A你好,ubuntu软件中心,还有可以从网站下载的deb文件也可以用gdebi或命令或新立德安装 查看详情
ubuntu16.04lts
Ubuntu16.04LTS 64位系统针对Android6.0sudoaptinstallgit-corebisonbuild-essentialcurlflexgitgnupggperflibesd0-devliblz4-toollibncurses5-devlibsdl-devlibwxgtk3.0-devlibxml2libxml2-utilslzopmavenopenjdk-7 查看详情