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

时间:2015-05-04 07:46:48

标签: linux mongodb ubuntu mongoid systemd

我最近将我的ubuntu从14.10升级到了15.04。除MongoDB之外,所有功能似乎都正常工作。我使用Mongoid gem在rails应用程序上使用带有ruby的mongoDB。 MongoDB不能像我们在ubuntu中那样通过服务进行控制。

sudo service mongodb start

sudo service mongod start

我收到此错误消息

  

无法重启mongod.service:单位mongod.service无法加载:   没有这样的文件或目录。

但每次我必须使用

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

只要该终端被打开,mongodb就会被连接。我使用MongoDB在Ruby on Rails应用程序中使用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.

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

6 个答案:

答案 0 :(得分:10)

事实证明,Mongo>2.6.3在启动时存在已知问题:

支持Systemd(无法使用Fedora 15或更高版本的init脚本启动mongodb)

如上所述:in this link似乎除了强烈抗议之外,>2.6.3可能不会完全修复Ubuntu 16.04,除非有强烈抗议。

所以解决方案将发布:

sudo apt-get install --reinstall mongodb

这回复到mongo 2.6.3现在所有的工作!对于那些遇到这个...

答案 1 :(得分:4)

我看到了/var/lib/mongodb/,它需要将身份验证2.6架构移动到3.0.5架构,我只是删除了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. 中的日志和所有数据库,然后重新启动服务并再次运行。

_start:

答案 2 :(得分: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 :(得分:3)

您需要更改db的路径配置:

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

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

sudo chown -R mongodb /data/db

答案 4 :(得分:2)

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

答案 5 :(得分:-1)

它在 Ubuntu 16.04 上帮助了我:

cd /var/lib
sudo rm -rf ./mongodb
sudo mkdir mongodb
sudo chown -R mongodb mongodb/
sudo service mongodb restart