sudo service mongodb restart在ubuntu 14.0.4中给出了“无法识别的服务错误”

时间:2014-11-10 20:09:24

标签: mongodb ubuntu ubuntu-14.04

我刚刚在ubuntu 14.0.4上安装了mongoDB。 我试图启动shell,但我收到连接拒绝错误。

me@medev:/etc/init.d$ mongo
MongoDB shell version: 2.6.5
connecting to: test
2014-11-10T15:06:28.084-0500 warning: Failed to connect to 127.0.0.1:27017, reason: errno:111 Connection refused
2014-11-10T15:06:28.085-0500 Error: couldn't connect to server 127.0.0.1:27017 (127.0.0.1), connection attempt failed at src/mongo/shell/mongo.js:146
exception: connect failed

所以我决定尝试重启服务,但那也失败了。我收到以下错误消息:

me@medev:/etc/init.d$ sudo service mongodb restart
mongodb: unrecognized service
me@medev:/etc/init.d$ 

这就是我在/var/log/mongodb/mongod.log中的内容 - http://pastebin.com/MrHt8tce

到目前为止我所尝试的内容:

我在这里发现了另一篇帖子:can't start mongodb as sudo 它发表了关于删除mongo锁文件的评论。

我删除了锁定文件,然后重试了我的命令,但它仍然失败,如下所示:

me@medev:/var/lib/mongodb$ sudo rm mongod.lock 
me@medev:/var/lib/mongodb$ ls
journal  local.0  local.ns  _tmp

me@medev:/var/lib/mongodb$ sudo service mongodb start
mongodb: unrecognized service

但我可以使用/etc/init.d启动它,如下所示:

me@medev:/var/lib/mongodb$ sudo /etc/init.d/mongod start
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service mongod start

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the start(8) utility, e.g. start mongod
mongod start/running, process 27469
me@medev:/var/lib/mongodb$ ls
journal  local.0  local.ns  mongod.lock

me@medev:/var/lib/mongodb$ mongo
MongoDB shell version: 2.6.5
connecting to: test
> db
test
> 

任何关于我为什么无法使用服务命令启动它的想法都将不胜感激。根据我的阅读,我应该使用sudo service mongodb

11 个答案:

答案 0 :(得分:37)

试试这个:

撰写bin代替mongodb

mongod

答案 1 :(得分:20)

有一天我得到了同样的错误你应该使用它:

1.获取mongo服务的状态:

 /etc/init.d/mongod status

 sudo service mongod status

2.如果没有开始修复,请执行以下操作:

sudo rm /var/lib/mongodb/mongod.lock
mongod --repair
sudo service mongodb start

再次检查服务是否再次启动(1)

答案 2 :(得分:7)

对我来说,解决方案是替换

service mongod start

start mongod

答案 3 :(得分:5)

您需要确保该文件(例如/etc/init.d/mongodb)具有执行权限。

chmod +x /etc/init.d/mongodb

答案 4 :(得分:3)

对于debian,从10gen repo,在2.4.x和2.6.x之间,他们将init脚本/etc/init.d/mongodb重命名为/etc/init.d/mongod,并将/或默认配置文件重命名为/ etc / mongodb.conf到/etc/mongod.conf,以及从“mongodb”到“mongod”的PID和锁文件。这使得升级成为一种痛苦,我在任何地方的文档中都没有提到它。无论如何,解决方案是删除旧的“mongodb”版本:

update-rc.d -f mongodb remove
rm /etc/init.d/mongodb
rm /var/run/mongodb.pid
diff -ur /etc/mongodb.conf /etc/mongod.conf

现在,查看并查看需要保留的配置更改,并将它们放在mongod.conf中。

然后:

rm /etc/mongodb.conf

现在你可以:

service mongod restart

答案 5 :(得分:2)

对我来说没有任何帮助,但在与expirienced devops伙伴商量后,我已经以解决方案结束

创建包含内容的foverlaps文件

data.table

然后启动/停止命令应该工作

/lib/systemd/system/mongod.service

供参考 - 我从

安装了Ubuntu 14.04 LTS,MongoDB 3.2.9
[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
Documentation=https://docs.mongodb.org/manual

[Service]
User=mongodb
Group=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf

[Install]
WantedBy=multi-user.target

答案 6 :(得分:1)

我使用manual from official site在Debian Jessie上安装了mongo服务器。

在使用相同的sudo service mongod restart的推荐命令error - mongodb: unrecognized service之后,它没有启动。

在查看已安装的软件包内容之后,我注意到它仅包含Systemd服务单元,而没有SystemV初始化脚本:

# dpkg -L mongodb-org-server
/.
/usr
/usr/bin
/usr/bin/mongod
/usr/share
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/mongodb-org-server
/usr/share/doc
/usr/share/doc/mongodb-org-server
/usr/share/doc/mongodb-org-server/LICENSE-Community.txt
/usr/share/doc/mongodb-org-server/README
/usr/share/doc/mongodb-org-server/copyright
/usr/share/doc/mongodb-org-server/changelog.gz
/usr/share/doc/mongodb-org-server/GNU-AGPL-3.0.gz
/usr/share/doc/mongodb-org-server/THIRD-PARTY-NOTICES.gz
/usr/share/doc/mongodb-org-server/MPL-2.gz
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/mongod.1.gz
/etc
/etc/mongod.conf
/lib
/lib/systemd
/lib/systemd/system
/lib/systemd/system/mongod.service

但是我的系统在SysV初始化上运行:

# stat /proc/1/exe
File: '/proc/1/exe' -> '/sbin/init'

因此,现在有2个选项:

答案 7 :(得分:0)

我想你可能已经为错误的系统发行版安装了mongodb版本。

看看如何为ubuntu和debian安装mongodb:

http://docs.mongodb.org/manual/tutorial/install-mongodb-on-debian/ http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/

我有类似的问题,发生的事情是我在debian中安装ubuntu软件包

答案 8 :(得分:0)

原始来源 - https://www.techrepublic.com/article/how-to-install-mongodb-community-edition-on-ubuntu-linux/

如果您使用的是Ubuntu 16.04并面临无法识别的服务错误,这些说明将为您解决: -

  1. 打开终端窗口。
  2. 发出命令sudo apt-key adv —keyserver hkp://keyserver.ubuntu.com:80 —recv EA312927
  3. 发出命令sudo touch /etc/apt/sources.list.d/mongodb-org.list
  4. 发出命令sudo gedit /etc/apt/sources.list.d/mongodb-org.list
  5. 将以下一行(取决于您的版本)复制并粘贴到打开的文件中。 对于12.04:deb http://repo.mongodb.org/apt/ubuntu precise/mongodb-org/3.6 multiverse 对于14.04:deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.6 multiverse 对于16.04:deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse
  6. 确保使用相应的最新版本编辑版本号并保存文件。

    <强>安装 打开终端窗口并发出命令sudo apt-get update && sudo apt-get install -y mongodb-org

    让安装完成。

    运行MongoDB 要启动数据库,请发出命令sudo service mongodb start。您现在应该能够发出命令以查看MongoDB是否正在运行:systemctl status mongodb

    Ubuntu 16.04解决方案 如果您使用的是Ubuntu 16.04,则可能会遇到由于从upstart切换到systemd而出现错误mongodb:无法识别的服务的问题。要解决这个问题,您必须按照以下步骤操作。

    • 如果您添加了/etc/apt/sources.list.d/mongodb-org.list,请使用sudo rm /etc/apt/sources.list.d/mongodb-org.list

    • 命令将其删除
    • 使用命令sudo apt-get update

    • 更新apt
    • 使用命令sudo apt-get install mongodb从标准存储库安装官方MongoDB版本,以便正确设置服务

    • 使用命令sudo apt-get remove mongodb && sudo apt-get autoremove

    • 删除刚刚安装的内容

    现在按照上面列出的步骤1到5安装MongoDB;这应该使用已经存在的systemd服务重新安装最新版本的MongoDB。当您发出命令systemctl status mongodb时,您应该看到服务器处于活动状态。

    我主要是从这里复制粘贴上面的内容(稍加修改和错误修正) - https://www.techrepublic.com/article/how-to-install-mongodb-community-edition-on-ubuntu-linux/

答案 9 :(得分:0)

这是一个简单的解决方案,对我有相同的问题(我认为): mv /var/lib/mongodb /var/lib/mongodb_backup mkdir /var/lib/mongodb chmod 700 /var/lib/mongodb chown mongodb:daemon /var/lib/mongodb systemctl restart mongodb or service mongod restart

答案 10 :(得分:0)

您可以使用mongod而不是mongodb命令,如果在mongo中发现有关dbpath的任何问题,可以在下面的链接中使用我的答案。

https://stackoverflow.com/a/53057695/8247133