升级到Ubuntu 15.04后MongoDB服务无法工作

uqcuzwp8  于 2023-11-17  发布在  Go
关注(0)|答案(7)|浏览(183)

我最近将我的ubuntu从14.10升级到15.04。除了MongoDB之外,所有功能似乎都运行良好。我使用MongoDB和使用Mongoid gem的ruby on rails应用程序。MongoDB不像我们在ubuntu中通常所做的那样从服务控制。

sudo service mongodb start

字符串

sudo service mongod start


我收到这个错误信息
无法重新启动mongod。服务:单位mongod。服务无法加载:没有这样的文件或目录。
但是每次我必须使用以下命令将应用程序连接到MongoDB服务器时,都必须手动启动它

sudo mongod -f /etc/mongod.conf


因此,只要打开该终端,mongodb就会连接。我在Ruby on Rails应用程序中使用Mongoid adapater/ORM使用MongoDB
当我运行

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.


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

wmvff8tz

wmvff8tz1#

原来Mongo>2.6.3有一个已知的start问题:
支持Systemd(在Fedora 15或更高版本中无法使用init脚本启动mongodb)
正如这里所指出的:in this link,似乎这可能不会完全固定的>2.6.3,直到Ubuntu 16.04,除非有一个强烈的抗议。
因此,解决方案是:

sudo apt-get install --reinstall mongodb

字符串
这恢复到mongo 2.6.3,现在所有的工作!对于那些运行在这个.

unhi4e5o

unhi4e5o2#

您需要更改数据库的路径配置:
例如,在文件“/etc/mongod.conf”中设置“dbPath:/data/db”
您需要给予mongodb用户访问此路径的权限:

sudo chown -R mongodb /data/db

字符串

az31mfrm

az31mfrm3#

上面的方法也适用于我:

> 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/

42fyovps

42fyovps4#

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

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.

字符串

mwg9r5ms

mwg9r5ms5#

以上的解决方案对我来说都不管用。ubuntu 15.04中有一些内核级别的变化,他们不会在当前版本中解决这个问题。希望它会在ubuntu的下一个稳定版本中得到修复。

gstyhher

gstyhher6#

以下命令帮助了我:

rm /var/lib/mongodb/mongod.lock 
mongodb restart

字符串

9o685dep

9o685dep7#

在Ubuntu 16.04上使用:

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

字符串

相关问题