0

私の Ruby アプリケーションは、今週初めまで問題なく動作していましたが、システムがクラッシュし、ページにエラー メッセージが表示されました...

エラー メッセージ: localhost:27017 でマスター ノードに接続できませんでした (Mongo::ConnectionFailure)

例外クラス: PhusionPassenger::UnknownError

アプリケーション ルート: /home/deploy/www/gm-git

システムはこのように設定されています...

• Ruby on Rails 3.0.8 • Mongoid 2.0.2 • バックグラウンド処理用の Redis & Resque

次の起動シーケンスを試しましたが、成功しませんでした...

/opt/redis/redis-server
/opt/mongodb/bin/mongod --force --logpath /opt/mongodb/bin
rake environment rescue:workers
touch /home/proyectos/gm/test_git/goldenmile

たとえば、これを何度も更新しました

/opt/redis/redis-server
/opt/mongodb/bin/mongod --fork --logpath /opt/mongodb/bin
/opt/mongodb/bin/mongod --repair
rake environment rescue:workers
touch /home/proyectos/gm/test_git/goldenmile

しかし、ターミナルに次のようなエラーメッセージが表示されます

/opt/mongodb/bin/mongod --start
ERROR: unknown option start

/opt/mongodb/bin/mongod --status
ERROR: unknown option status

/opt/mongodb/bin/mongod start
Invalid command: start

/opt/mongodb/bin/mongod/ --logpath /opt/mongodb/bin
-bash: /opt/mongodb/bin/mongod/: Not a directory

/opt/mongodb/bin/mongod/ --logpath /opt/mongodb/bin/mongod/
-bash: 2b.: command not found

/opt/mongodb/bin/mongod/ --logpath /opt/mongodb/bin/mongod
-bash: /opt/mongodb/bin/mongod/: Not a directory

どんなヘルプ/指示も最も役に立ちます

4

1 に答える 1

0

localhost:27017 の Mongo::ConnectionFailure エラーは、mongodが実行されていない場合によく発生します。psコマンドを使用してこれを確認し、必要に応じて mongod を再起動してから、mongoシェルを実行する必要があります。mongo シェルが「エラー: サーバー 127.0.0.1 shell/mongo.js:84 に接続できませんでした」と報告した場合は、戻って mongod サーバー プロセスのステータスを確認します。

次の行は疑わしいです。

/opt/mongodb/bin/mongod --fork --logpath /opt/mongodb/bin
/opt/mongodb/bin/mongod --repair

mongod サーバーの実行と修復を同時に行おうとしているようです。mongod が既に実行されている場合、修復の試みは失敗します。db サービスを開始する前に、mongod を実行するつもりだったのではないでしょうか。64 ビット プラットフォームを使用している場合、ジャーナリングはデフォルトでオンになっているため、一貫した状態を回復するために修復を行うべきではありません。http://www.mongodb.org/display/DOCS/Durability+and+Repairを参照してください。

また、修復には時間がかかる可能性があり、その間、別の mongod for db サービスを開始することはできません。これが根本的な問題であると思われます-修復が実行されていたため、db サービスを開始しようとして失敗しました。

とにかく、mongodが実行されていないようです。--start、--status、start などのオプションは、前述のようにすべて不明であり、mongod はこれらの各エラーのオプションの完全なリストも出力します。シェル コマンドの後 (mongo の後) に末尾のスラッシュがあると、OS にディレクトリを探すように指示されます。オプションなしでシェルでmongodを実行しようとしましたか? 何が起こるのですか?mongod を db サーバーとして (修復ではなく) 実行する必要があり、さらに先に進む前に、mongod が起動していることと、 mongoシェルを使用して接続できることを確認する必要があります。

それがどのように機能するか教えてください。

于 2012-06-08T15:32:04.227 に答える