MongoDB 2.6はUbuntu 15.04で起動しません


51

私はMongoDBの2.6をインストールし、クリーンインストールのUbuntu 15.04に:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
sudo apt-get update
sudo apt-get install -y mongodb-org

問題なく終了しました。ただし、起動しようとすると、次のエラーが発生しました。

$ sudo service mongod start
Failed to start mongod.service: Unit mongod.service failed to load: No such file or directory.

どうすれば修正できますか?

回答:


65

debian wheezeリポジトリからインストールしましたが、正常に動作します。

まず、mongodb-orgパッケージとそのすべての依存関係を必ず削除してください。

sudo apt-get purge mongodb-org
sudo apt-get autoremove

作成した古いmongodb.listを削除します。

sudo rm /etc/apt/sources.list.d/mongodb.list

代わりにDebianリポジトリを使用してください:

echo "deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list

更新して再インストールします。

sudo apt-get update
sudo apt-get install -y mongodb-org

その後、サーバーを正常に起動できます。

sudo service mongod start

または

systemctl start mongod

(Roman Gaufmanのコメントへの返信でErnie Hersheyが明らかにしたように:https ://jira.mongodb.org/browse/SERVER-17742 )


1
私はそれを試み、mongodを開始しようとしたときに見つからないサービスを得た
モシェレヴァ

2
依存関係を自動削除しましたか?私もそれを手に入れましたが、その後、mongodb関連のパッケージをすべて削除していないことに気付きました。それらをすべて削除してwheezyリポジトリからインストールした後、systemdで問題なく動作します。
ディールソン販売

1
私は頭痛の多く保存
SrivathsaハリッシュVenkataramana

1
ありがとうございました。パージに続いて自動削除(ほとんど忘れていました)がトリックを行いました。
ネナド・ヴキチェビッチ

私の場合、14.04にありますが、15.04 tailingにある可能性があります。非標準のデータディレクトリ、ログディレクトリ、またはユーザーインスタンスを使用している場合/var/log/syslog、失敗した試行を検証してから編集/etc/init/mongodb.confすることも役立ちます。
ジョーズで食べる

25

MongoDBチームは、Ubuntu 15.04をサポートしないと言い、代わりに16.04をサポートする予定です(https://jira.mongodb.org/browse/SERVER-17742を参照)。

Ubuntu 15.04は、デフォルトのinitシステムをUpstartからsystemdに進めます。systemdを使用してMongoDB 3.0を起動することに成功しませんでした。

インストールしてUpstartに切り替えることができますupstart-sysv

sudo apt-get install upstart-sysv

再起動すると、MongoDBが起動します。

時間をさかのぼることなく、Ubuntu 15.04でMongoDBを実行する簡単な方法を見つけたいと思っています。


2
これは、現時点でこの問題を解決する最良の方法です。誰か他の方法を知っているなら、ここで共有してください。
フェルナンドコシュ

私の場合、upstart-sysvをインストールして再起動するとクラッシュするだけです。
ディダックモンテロ

で@DidacMonteroルックwiki.ubuntu.com/SystemdForUpstartUsersその他のオプションについて
モシェRevah

Ubuntu 15.04で動作します。回避策をありがとう!
リルビット

これは私にとって完璧に機能しました。
slimflem

4

mongodb.orgから直接公開されたパッケージからインストールしています。Ubuntuリポジトリで提供されるパッケージからインストールする必要があります。Debian / Ubuntuパッケージには、mongodb.orgが残した穴を埋めるためにsystemdサービスユニットがパッチされています。

mongodb.serviceWWW にユニットファイルが不足しているわけではありません。ユニットファイルを書くのも難しくありません。私は持っています。)

具体的には、Ubuntuバージョン15のmongodb-serverバージョン2.6パッケージにこのようなサービスユニットあります。したがって、そのパッケージをインストールするだけです。

(Debian / Ubuntuが提供するサービスユニットは、mongoが推奨するsystemdサービスユニットディレクティブを適用しないことに注意してください。)

参考文献


しかし、このアプローチは、MongoDBの> = 3.0たい人のための問題を解決していません
Dielson販売

はい、そうです。明らかに、2番目の段落もそれ以降の読書も読んでいません。
JdeBP

4

Ubuntu 15.04+およびMongo 3.0+で動作するように見えるSystemdスクリプトを作成しました。

[Unit]
Description=High-performance, schema-free document-oriented database
Documentation=man:mongod(1)
After=network.target

[Service]
Type=forking
User=mongodb
Group=mongodb
RuntimeDirectory=mongod
PIDFile=/var/run/mongod/mongod.pid
ExecStart=/usr/bin/mongod -f /etc/mongod.conf --pidfilepath /var/run/mongod/mongod.pid --fork
TimeoutStopSec=5
KillMode=mixed

[Install]
WantedBy=multi-user.target

https://gist.github.com/benileo/ada486d73f58dd93a0ee

必ずデータディレクトリを設定してください /etc/mongod.conf


1
これが最善の解決策です。
J.ブルーニ

リンクが機能しなくなった
-Hotbelgo

リンクを修正しました。
ベニレオ

確かに、それは最良の解決策としてマークされるべきです。
ウェドニーユーリ

1

これが最良の答えではありませんか?重複した質問から:https : //askubuntu.com/a/694226/255468 by @sclausen


systemdのサービスファイルが不足しているだけです。Kartikのように新興企業に戻ったり、https: //docs.mongodb.org/manual/installation/で説明されているものとは異なるリポジトリを使用する必要はありません。

次の内容のファイル/lib/systemd/system/mongodb.serviceを作成します。

[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target

[Service]
User=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongodb.conf

[Install]
WantedBy=multi-user.target


1

「mongod」の代わりに「mongodb」を使用する

すなわち

sudo service mongodb start

sudo service mongodb stop

0

これらの回答の多くはMongo 3.0に関連していますが、質問では2.6について具体的に尋ねました。

10genのDebianリポジトリを使用して2.6をインストールすることに成功しました。これはUbuntu 15.04で完全に動作するようです。

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo 'deb http://downloads-distro.mongodb.org/repo/debian-sysvinit dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
sudo apt-get update
sudo apt-get install mongodb-org

ソース:Ubuntu 14.10、14.04、および12.04 LTSにMongoDB 2.6をインストールする方法


0

質問はバージョン2.6です。Unit mongod.service failed to loadバージョン3.0.6のUbuntu 15.04 でもまったく同じエラーが発生していました。上記のDielson Salesが言及した同じwheezyリポジトリを使用して最終的に解決されました。

そして、インストール後(@Dielson Salesが詳述した手順に従って)、上記のエラーに直面しました。これが私が最終的に解決した方法です。

A)MongoDBのデフォルトのデータストアファイルを/ var / lib / mongodbから/ data / dbに変更します

  • 最初に新しい/ data / dbディレクトリを作成します sudo mkdir -p /data/db

  • mongod.confファイルsudo gedit /etc/mongod.confを開き、「dbpath」行を次のように変更します

  • 置き換えDBPATH =の/ var / libに/ MongoDBの TO DBPATH = /データ/ DBやファイル保存を。

  • 次に、古いデフォルトの/ var / lib / mongodbを削除します

  • ここで、mongodユーザーが所有するすべてのディレクトリ/ファイルを作成する必要があります

B)だから実行 sudo chown -R mongodb:mongodb /data/db

そして今、ついにmongoを始めることができます sudo service mongod start

そして、サービスが実行されているchcek- sudo systemctl status mongod 以下のようなメッセージが表示されるはずです

Loaded: loaded (/etc/init.d/mongod)

Active: active (running) since Thu 2015-09-03 04:57:49 IST; 7s ago

ブログ投稿で手順を詳しく説明してください


0

まず、mongodbをダウンロードします。

curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz

ダウンロードの抽出:

tar -zxvf mongodb-linux-x86_64-3.0.6.tgz

-dbpath属性を指定してmongod(mongodb-linux-x86_64-3.0.6.tgz / bin / mongod)を実行します。

sudo ./mongod --dbpath /path/of/the/directory

任意の空のディレクトリにすることができます

そして最後に、mongo(mongodb-linux-x86_64-3.0.6.tgz / bin / mongo)を実行します

./mongo

私のubuntu 15で働いた:)

私の悪い英語をすみません、私はブラジルに住んでいます


0

検索から数時間後、解決策は次のコマンドを使用してubuntuを15.04から16.04にアップグレードすることでした:

ステップ1

sudo do-release-upgrade -d 

mongodbを削除するよりも数分かかるので、パニックにならないでください。

ステップ2

sudo apt-get purge mongodb-org 
sudo apt-get autoremove`  
rm /etc/apt/sources.list.d/mongodb-org-3.0.list`  

そして今、mongodbをインストールしますが、このソースを使用します:

echo 'deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main' | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list

ステップ3

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10  
echo ‘deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main’ | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list
sudo apt-get update
sudo apt-get install mongodb-org
sudo service mongod status

以上です。

注: 「E:最初の行のタイプ「deb」のようなエラーが表示された場合。。。ファイルmongodb-org-3.0.list内

必要なのは、geditを使用してこのファイルを取得し、文の最初と最後の 'を削除することだけです。


この部分「解決策は、ubuntuを15.04から16.04にアップグレードすることでした...」は、16.04がまだリリースされていないため、現時点では意味がありません。
clearkimura

1
@clearkimuraはい、そうです。まあ、アルファで。とにかく、Ubuntu 16.04の2番目の毎日のビルドがコンピューターにインストールされ、問題は見られませんでした。
スターOS

0

Ubuntu 15.04+はupstartの代わりにsystemdを使用ます。MongoDBの公式インストールガイドから始めます。その後、彼らの公式を使用してくださいmongod.service

[Unit]
Description=High-performance, schema-free document-oriented database

[Service]
User=mongod
Group=mongod
Environment="OPTIONS=--quiet -f /etc/mongod.conf"
ExecStart=/usr/local/bin/mongod $OPTIONS run
PIDFile=/var/run/mongodb/mongod.pid

[Install]
WantedBy=multi-user.target

ダウンロード、パッチ、サービスのインストール、dir + permissionsのセットアップ

$ curl -OL https://raw.githubusercontent.com/mongodb/mongo/1663f45b4e33e058a0203a81f50574a870882c34/rpm/mongod.service
$ sed -i 's/\/usr\/local/\/usr/g' mongod.service
$ sed -i '/Desc/a After=network.target' mongod.service
$ sudo sed -i '0,/\/var\/lib\/mongodb/s//\/data\/db/' /etc/mongod.conf
$ sudo cp mongod.service /lib/systemd/system/mongo.service
$ sudo mkdir -p /data/db
$ sudo chown -R mongodb:mongodb /data
$ sudo systemctl daemon-reload
$ sudo systemctl enable mongod

サービスを開始

$ sudo systemctl start mongod

サービスの状態を確認する

$ sudo systemctl status mongod

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.