升级到 Ubuntu 15.04 后 MongoDB 服务无法运行

问题描述 投票:0回答:7

我最近将我的 ubuntu 从 14.10 升级到 15.04。除了

MongoDB
之外,所有功能似乎都运行良好。我正在使用 mongoDB 和 ruby on Rails 应用程序,并使用 Mongoid gem。 MongoDB 无法像我们通常在 ubuntu 中那样通过服务进行控制。

sudo service mongodb start

sudo service mongod start

我收到此错误消息

无法重新启动 mongod.service:单元 mongod.service 加载失败: 没有这样的文件或目录。

但是每次我必须使用

将我的应用程序连接到 MongoDB 服务器时,我都必须手动启动它
sudo mongod -f /etc/mongod.conf

因此,只要该终端打开,

mongodb
就会连接。我在 Ruby on Rails 应用程序中使用
MongoDB
使用
Mongoid adapater/ORM

当我跑步时

sudo service mongodb status

我得到以下输出

mongodb.service - An object/document-oriented database
Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since بدھ 2015-05-06 14:47:53 PKT; 5s ago
Docs: man:mongod(1)
Process: 28602 ExecStart=/usr/bin/mongod --config /etc/mongodb.conf (code=exited, status=4)
Main PID: 28602 (code=exited, status=4)

مٓی 06 14:47:53 NX00443 systemd[1]: Started An object/document-oriented database.
مٓی 06 14:47:53 NX00443 systemd[1]: Starting An object/document-oriented database...
مٓی 06 14:47:53 NX00443 systemd[1]: mongodb.service: main process exited, code=exited, status=4/NOPERMISSION
مٓی 06 14:47:53 NX00443 systemd[1]: Unit mongodb.service entered failed state.
مٓی 06 14:47:53 NX00443 systemd[1]: mongodb.service failed.

在这方面的任何帮助将不胜感激。

linux mongodb ubuntu mongoid systemd
7个回答
13
投票

事实证明

Mongo>2.6.3
有一个已知的启动问题:

支持Systemd(Fedora 15或以上版本无法使用init脚本启动mongodb)

正如这里所指出的:在此链接中,似乎这可能不会完全修复

>2.6.3
直到
Ubuntu 16.04
,除非有强烈的抗议。

所以解决方案就是发出:

sudo apt-get install --reinstall mongodb

这又恢复到

mongo 2.6.3
,现在一切正常了!对于那些遇到这个问题的人...


5
投票

需要更改db的路径配置:

例如在文件“/etc/mongod.conf”中设置“dbPath: /data/db”

您需要授予 mongodb 用户访问此路径的权限:

sudo chown -R mongodb /data/db

3
投票

上述解决方案也适用于我:

> sudo apt-get install --reinstall mongodb

我尝试了在这个网站和其他网站上找到的几种方法,但只有这一种对我有用!所以,现在,回到 Mongodb 2.6.3!

更新:问题已修复(2015/8/2 14:39): 我刚刚发现 MongoDB 3.0.5 发布了,所以我清除了 2.6.3 版本并尝试在我的 Ubuntu 15.04 上安装 3.0.5。但问题依然存在!然而,当我用 Debian wheezy 软件包重新安装它后,最终

sudo service mongod start
命令起作用了(当我安装 3.0.4 debian wheezy 版本时它不起作用)。现在新的 MongoDB 3.0.5 在我的 Ubuntu 15.04 上运行良好!

安装Debian wheezy版本,请参考MongoDB官方安装指南: http://docs.mongodb.org/manual/tutorial/install-mongodb-on-debian/


3
投票

我看到

/var/log/mongodb/mongodb.log
,它需要将身份验证2.6模式移至3.0.5模式,我刚刚删除了日志和
/var/lib/mongodb/
中的所有数据库,然后重新启动服务,它再次工作。

2016-01-17T14:43:08.529+0200 I CONTROL  [initandlisten] allocator: tcmalloc
2016-01-17T14:43:08.529+0200 I CONTROL  [initandlisten] options: { command: [ "run" ], config: "/etc/mongodb.conf", net: { bindIp: "127.0.0.1,10.0.0.170", http: { enabled: false }, port: 27017 }, processManagement: { fork: true, pidFilePath: "/var/run/mongodb/mongodb.pid" }, storage: { dbPath: "/var/lib/mongodb", journal: { enabled: true } }, systemLog: { destination: "file", path: "/var/log/mongodb/mongodb.log", quiet: true } }
2016-01-17T14:43:08.834+0200 I STORAGE  [initandlisten] Old 2.4 style user index identified. The authentication schema needs to be updated by running authSchemaUpgrade on a 2.6 server.

2
投票

以上解决方案都不适合我。 ubuntu 15.04 中的内核级别更改很少,并且不会在当前版本中解决此问题。希望它会在 ubuntu 的下一个稳定版本中得到修复。


0
投票

以下内容对我有帮助: rm /var/lib/mongodb/mongod.lock

mongodb重启


-1
投票

它在 Ubuntu 16.04 上对我有帮助:

cd /var/lib
sudo rm -rf ./mongodb
sudo mkdir mongodb
sudo chown -R mongodb mongodb/
sudo service mongodb restart
© www.soinside.com 2019 - 2024. All rights reserved.