古いロックファイル:\ data \ db \ mongod.lock、おそらく不正なシャットダウンを意味する

古いロックファイル:\ data \ db \ mongod.lock、おそらくクリーンでないシャットダウンを意味します

mongoDBサーバーを開始すると、以下のエラーがヒットし、mongoDBサーバーは起動できません。

**************
old lock file: \data\db\mongod.lock.  probably means unclean shutdown
recommend removing file and running --repair
see: http://dochub.mongodb.org/core/repair for more information
*************
Mon May 09 12:37:43 [initandlisten] exception in initAndListen std::exception: old lock file,
terminating
Mon May 09 12:37:43 dbexit:
Mon May 09 12:37:43 [initandlisten] shutdown: going to close listening sockets...
Mon May 09 12:37:43 [initandlisten] shutdown: going to flush diaglog...
Mon May 09 12:37:43 [initandlisten] shutdown: going to close sockets...
Mon May 09 12:37:43 [initandlisten] shutdown: waiting for fs preallocator...
Mon May 09 12:37:43 [initandlisten] shutdown: closing all files...
Mon May 09 12:37:43 closeAllFiles() finished
Mon May 09 12:37:43 dbexit: really exiting now

溶液

これは、mongoDBマシンがクラッシュした場合、またはkill -9コマンドが発行された場合の一般的なエラーメッセージです。 つまり、mongoDBがクラッシュしたため、修復する必要があります。 修正するには:

1. data-directory\mongod.lockファイルを見つけて、削除します。

mongodb lock file

2. mongod --repairコマンドを発行します。

mongod --repair
Mon May 09 12:42:57 [initandlisten] db version v1.8.1, pdfile version 4.5
//......
Mon May 09 12:42:57 [initandlisten] shutdown: going to close listening sockets...
Mon May 09 12:42:57 [initandlisten] shutdown: going to flush diaglog...
Mon May 09 12:42:57 [initandlisten] shutdown: going to close sockets...
Mon May 09 12:42:57 [initandlisten] shutdown: waiting for fs preallocator...
Mon May 09 12:42:57 [initandlisten] shutdown: closing all files...
Mon May 09 12:42:57 closeAllFiles() finished
Mon May 09 12:42:57 [initandlisten] shutdown: removing fs lock...
Mon May 09 12:42:57 dbexit: really exiting now

Note
mongodb修復の仕組みの詳細については、このMongoDB Durability and Repair guideを参照してください。