我最近将我的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.
在这方面的任何帮助将不胜感激。
答案 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