2017-01-16 35 views
7

新しいAWS Linux AMI 2016.09.1(HVM)を開始し、最新のMongodbリリースをダウンロードしました。私はMongoDBバージョン3.0.14を使用しています。私はMongo Restart Error - /var/run/mongodb/mongod.pidが存在する

sudo service mongod start 

すべてが正常に動作し、サービスを利用して、初めてのMongoDBを実行し、次の、

# mongod.conf 

# for documentation of all options, see: 
# http://docs.mongodb.org/manual/reference/configuration-options/ 

# where to write logging data. 
systemLog: 
destination: file 
logAppend: true 
path: /var/log/mongodb/mongod.log 

# Where and how to store data. 
storage: 
dbPath: /var/lib/mongo 
journal: 
enabled: true 
# engine: 
# mmapv1: 
# wiredTiger: 

# how the process runs 
processManagement: 
    fork: true # fork and run in background 
    pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile 

# network interfaces 
net: 
    port: 27017 
# bindIp: 127.0.0.1 # Listen to local interface only, comment to listen on 
    all interfaces. 


#security: 

#operationProfiling: 

#replication: 

#sharding: 

## Enterprise-Only Options 

#auditLog: 

#snmp: 

に/etc/mongod.confを更新しました。私はMongoDBのを停止して再起動、

sudo service mongod stop 
sudo service mongod restart 

とき、私は次のエラーを取得する、ここで

Error starting mongod. /var/run/mongodb/mongod.pid exists. 

は、ログファイルには何かということです/var/log/mongodb/mongod.log、

2017-01-16T14:11:16.869+0000 I CONTROL ***** SERVER RESTARTED ***** 
2017-01-16T14:11:16.872+0000 I CONTROL [initandlisten] MongoDB starting : 
    pid=2820 port=27017 dbpath=/var/lib/mongo 64-bit hos 
    t=ip-10-0-0-91 
2017-01-16T14:11:16.872+0000 I CONTROL [initandlisten] db version v3.0.14 
2017-01-16T14:11:16.872+0000 I CONTROL [initandlisten] git version: 
    08352afcca24bfc145240a0fac9d28b978ab77f3 
2017-01-16T14:11:16.872+0000 I CONTROL [initandlisten] build info: Linux 
    ip-10-63-190-181 3.4.43-43.43.amzn1.x86_64 #1 SMP Mon 
    May 6 18:04:41 UTC 2013 x86_64 BOOST_LIB_VERSION=1_49 
2017-01-16T14:11:16.872+0000 I CONTROL [initandlisten] allocator: tcmalloc 
2017-01-16T14:11:16.872+0000 I CONTROL [initandlisten] options: { config: 
    "/etc/mongod.conf", net: { port: 27017 }, processMan 
    agement: { fork: true, pidFilePath: "/var/run/mongodb/mongod.pid" }, 
    storage: { dbPath: "/var/lib/mongo", journal: { enabled: t 
    rue } }, systemLog: { destination: "file", logAppend: true, path: 
    "/var/log/mongodb/mongod.log" } } 
2017-01-16T14:11:16.893+0000 E NETWORK [initandlisten] Failed to unlink 
    socket file /tmp/mongodb-27017.sock errno:1 Operation 
    not permitted 
2017-01-16T14:11:16.893+0000 I -  [initandlisten] Fatal Assertion 
    28578 
2017-01-16T14:11:16.893+0000 I -  [initandlisten] 

***aborting after fassert() failure 

私は解決策でこの問題について投稿し、いくつかのブログを見てきましたが、それらのどれも動作するようには思えません。一日中このことを理解しようとしました。以前のAWSインスタンスとMongoを実行する前に、この問題は発生しませんでした。

+0

'sudo rm /var/run/mongodb/mongod.pid'を試してからもう一度サービスを再開してください。 –

+0

こんにちはデイブさん、私がやった最初のことの一つでした。うまく行かなかった。このファイルには1行の「2943」しか含まれていませんでした。私はそれがいくつかのMongoDBプロセスのPIDだと思います。 – skmansfield

答えて

2

[OK]を、私は私の最初の答えに持っていたものに、より良い解決策を見つけました。私の以前の答えは単に症状を排除しました。私はいくつかの他の人が他のさまざまなディレクトリを管理しなければならないことを知りました。問題はmongodが適切に再起動せず、いくつかのディレクトリが間違って設定されてしまうということです。私は複数のスレッドが実行されていると思われるので、間違って設定されたディレクトリはややランダムです。 AmazonのAWS AMI Linuxリリースを使用しており、MongoDB 3.4をインストールしています。私は非常に良いMongoDBのインストールスクリプトを発見しました

https://docs.mongodb.com/manual/tutorial/install-mongodb-on-amazon/ 

ここに修正があります。私はそれを数回試して、毎回働いていました。いつものようにmongoをインストールしてください。役に立つ場合は上記のスクリプトを使用してください。あなたはmongodは、以下のコマンドを実行して開始する前に、

sudo chkconfig mongod on 

あなたは上記のスクリプトがchkconfigをを強調したが、それは見られないことがありますスクリプトの一番下にインストールすることに注意します。これにより、毎回mongodを正常に再起動できるようになります。これは他のLinuxバージョンでも有効です。

9

いいえ、問題が見つかりました。私は上記のDave Maplesの提案にしたがって、/var/run/mongodb/mongod.pidファイルを削除しました。しかし、MongoDBはまだ実行されません。私はログファイルをもう一度見て、このファイルについて吠えることを見た。

/tmp/mongodb-27017.sock 

正しいアクセス権がないようだ。私は試しました

sudo chown mongod:mongod /tmp/mongodb-27017.sock 

それはうまくいきました。今私がMongoDBを何度も起動/停止/再起動するとき、私はもはや問題はありません。ファイルのパーミッションによって、MongoDBが正しくクリーンアップされず、ディレクトリ内に/var/run/mongodb/mongod.pidファイルが残ってしまったと思います。これにより、 "mongod。/var/run/mongodb/mongod.pidが存在しません"エラーが発生しました。しかし、これは本当の問題ではありませんでした。本当の問題は/ tmp/permissionsでした。 mongod.pidファイルを削除してMongodを再起動した後のログファイルを見ると、アクセス権の問題が示されました。避けていた右のMongoDBを実行する前に、新しいサーバー上のMongoDBをインストールした後:「のmongod /tmp/mongodb-27017.sockはsudo chownコマンドのmongodを」だからここ

sudo rm /var/run/mongodb/mongod.pid 
sudo chown mongod:mongod /tmp/mongodb-27017.sock 

は、私はちょうどしようとした場合、私は賭け、問題を修正するものです問題。このフロリダ州の晴れた日を無駄にしました。

+1

セットアップと問題は同じですが、私にとってはまだ始まりません。私は 'rm/var/lib/mongo/mongod.lock'も持っていなければならず、それでもデフォルトアドレスがすでに使用されていると考えました。 '/ var/run/mongodb/mongod.pid'がもう一度消えて、' mongod.lock'がもう一度消えてから 'mkdir/data/db'と' chown -R mongod:mongod/data'を確認しなければなりません最終的に開始、停止、再開しました。がんばろう。 – Rachel

+1

私は戻って私のインストールノートを見ました。私は最近、サーバーにインストールするすべてのものについてインストールノートを残しています。多くの再発見問題を排除します。私はそれらを注意深く見て、次のように書き留めておいたことに気付きました。 "再起動後にMongoが再起動することを確認するには、次のコマンドを入力してください:sudo chkconfig mongod on"私はこれが根本的な問題だと信じています。最初にmongoを起動したら、chkconfigコマンドを実行する必要があります。 – skmansfield

+0

ありがとうございます。それは私の問題を解決する。私のスタックはCentos 6.5です –

1

あなたが設定ファイルでIPアドレスを変更する場合があります:

vimのサーバーを停止した後

# bindIp: 127.0.0.1 # Listen to local interface only, comment to listen on 
    all interfaces. 
    bindIp: xxx.xxx.xxx.xxx 
-1

/etc/mongod.conf、あなたは再起動しようとしています。サーバーは起動のみできます。だからこそ、あなたは停止エラーを得ている。また、このエラーを心配する必要もありません。

関連する問題