MongoDBについて質問です。
起動するとき、dbpathを指定したうえで起動しっぱなしにしてやりたいのですが、
service mongod --dbpath /[PATH]/
と指定すると
Usage: /etc/init.d/mongod {start|stop|status|restart|reload|force-reload|condrestart}
と返されてしまいます(mongoの起動はされない)。serviceを使わないで
mongod --dbpath /[PATH]/
とすると正常に起動します。
service mongod start
とすると起動失敗として以下のエラーがでます。
# service mongod start Starting mongod: about to fork child process, waiting until server is ready for connections. forked process: 23959 ERROR: child process failed, exited with error number 1 [FAILED]
mongod --repair --dbpath=[PATH]
のようにrepairオプションをつけると[PATH]の下にmongod.lockファイルが生成されてしまいます。さまざまなサイトの知見からでは、repairすることで消せるというように見受けられるのですが……(Masatomo Nakano Blogなど)。
[追記]
ログの置き場ディレクトリの所有者権限をmongodに変えるなどし、sudoコマンドで起動しようと試みたところ、エラーのナンバーが変わりました。
# sudo service mongod start Starting mongod: about to fork child process, waiting until server is ready for connections. forked process: 29633 ERROR: child process failed, exited with error number 14 [FAILED]
serviceコマンドを使って常にmongoを起動したままにしておきたいのですが、ご助力頂けませんでしょうか。なお、serviceのかわりに/etc/init.d/mongodとしても同様に起動できません。
もう一度同じようにmongoを起動する機会があってこの質問と自己回答を見返したのですがわかりにくく結局手こずったためシンプルに手順を箇条書きします。
- (前段)もし予期せぬshutdown等でなく計画的ならmongoexportしておく
(別環境で同様のものが動いているならそこからでもよい)
- lockファイルを含め、すべてのdbのディレクトリの中身を消す
(journalフォルダや.nsファイル.bsonファイルなどいろいろあるが全部)
- 起動は
sudo service mongod start
- (後段)mongoimportする
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。