2015-05-04 83 views
5

我最近升級我的Ubuntu從14.10到15.04。除了MongoDB,所有功能似乎都正常工作。我在使用Mongoid Gem的rails應用程序中使用mongoDB。正如我們在Ubuntu中通常所做的那樣,MongoDB不能從服務中控制。的MongoDB服務升級後不能正常工作到Ubuntu 15.04

sudo service mongodb start 

sudo service mongod start 

我收到此錯誤信息

無法重新啓動mongod.service:單位mongod.service未能加載: 沒有這樣的文件或目錄。

但我必須手動使用

sudo mongod -f /etc/mongod.conf 

所以mongodb是隻要該終端打開連接,每次我有我的應用程序連接到MongoDB的服務器啓動它。我在使用Mongoid adapater/ORM的Ruby on Rails應用程序中使用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. 

在這方面的任何幫助將不勝感激。

+0

我投票結束此題作爲題外話,因爲它與編程無關。 –

+1

它與最新的ubuntu版本上的mongodb服務器安裝問題有關。 MongoDB是現代編程語言可以使用的數據庫服務器。我在軌道上使用紅寶石4.它的安裝將幫助我開發應用程序。 –

+0

你是如何安裝Mongoid的,如果你通過apt來嘗試升級它,你嘗試調試init腳本嗎? – Maran

回答

2

上述溶液中沒有爲我工作。在Ubuntu 15.04中幾乎沒有內核級別的變化,他們不會在當前版本中解決這個問題。希望它會在下一個Ubuntu的穩定版本中得到修復。

7

原來,Mongo>2.6.3已經與開始時的已知問題:

支持Systemd(不能與init腳本啓動MongoDB的在Fedora 15或以上)

如這裏指出:in this link,似乎這可能>2.6.3直到Ubuntu 16.04纔會完全固定,除非有強烈的抗議聲音。

所以解決是發出:

sudo apt-get install --reinstall mongodb 

這恢復到mongo 2.6.3現在所有的作品!對於那些過這個運行...

3

上述解決方案的工作對我來說:

> sudo apt-get install --reinstall mongodb 

我試過幾種方法,我在這個網站和其他網站發現,但僅這一項工程我!所以,現在回到Mongodb 2.6.3!

更新:問題修正(2015年8月2日14:39): 我剛剛發現的MongoDB 3.0.5發佈,所以我清除版本2.6.3,並試圖安裝3.0.5我Ubuntu 15.04。但問題依然存在!然而,當我使用Debian喘息包reintalled它來代替,最後sudo service mongod start命令作品(它沒有當我安裝3.0.4 Debian的喘息版工作)。現在,新的MongoDB 3.0.5在我的Ubuntu 15.04上運行良好!

安裝Debian喘息版本,請參考官方的安裝指南上的MongoDB: http://docs.mongodb.org/manual/tutorial/install-mongodb-on-debian/

+0

您的解決方案在Ubuntu 15.10中爲mongoDB 3.0.7工作 –

2

我看到/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. 
+0

讓我試試這個 –

3

您需要更改數據庫的路徑配置:

例如在文件 「/etc/mongod.conf」 設置 「DBPATH:/數據/ DB」

您需要以授予mongodb用戶訪問此路徑的權利:

sudo chown -R mongodb /data/db 
相關問題