33

MongoDBに接続できません。Ubuntu では動作しますが、現在はCentOSで作業しています。これはエラーメッセージです:

MongoDB シェル バージョン: 2.4.2
接続先: test
Sat Apr 20 07:22:09.390 JavaScript の実行に失敗しました: エラー: src/mongo/shell/mongo.js でサーバー 127.0.0.1:27017 に接続できませんでした:L112
例外:通信失敗

ファイルを削除しようとしましたmongod.lockが、うまくいきません。

4

8 に答える 8

34

/var/lib/mongodb/mongod.lock を削除して、mongdo サービスを再起動してみてください

sudo rm /var/lib/mongodb/mongod.lock
sudo service mongodb restart
于 2013-04-27T02:41:14.163 に答える
16

この方法は、元のファイルを保持せずにデータ ファイルを修復する場合にのみ機能します。dbpath が存在する場所を見つけるには、次を使用します。

vim /etc/mongodb.conf

オプションを確認してくださいdbpath=

(私は持っていdbpath=/var/lib/mongodbます。)

デフォルト:/data/db/

典型的な場所には、、/srv/mongodbまたは/var/lib/mongodbがあり/opt/mongodbます。

/var/lib/mongodbdbpathに置き換えます

sudo rm /var/lib/mongodb/mongod.lock
sudo mongod --dbpath /var/lib/mongodb/ --repair
sudo mongod --dbpath /var/lib/mongodb/ --journal

(上記の行を実行した端末を実行したままにしておいてください。Ctrl+を押したり終了したりしないでください。)別のウィンドウで今すぐC開始するコマンドを入力します。mongo

これがうまくいくことを願っています!元のファイルを保持しながらデータ ファイルを修復したい場合は、mongorecoverを参照してください。

于 2013-05-08T10:02:45.660 に答える
2

@lkrzysiakの回答が反対票を投じられた理由がわかりません。うまくいきました!空き容量が不足していることが、このエラーの原因である可能性もあります。取得したログを参照してください。

    Mon Aug 12 17:02:59.159 [initandlisten] recover : no journal files present, no recovery needed
    Mon Aug 12 17:02:59.159 [initandlisten] 
    Mon Aug 12 17:02:59.159 [initandlisten] ERROR: Insufficient free space for journal files
    Mon Aug 12 17:02:59.159 [initandlisten] Please make at least 3379MB available in /var/lib/mongodb/journal or use --smallfiles
    Mon Aug 12 17:02:59.159 [initandlisten] 
    Mon Aug 12 17:02:59.159 [initandlisten] exception in initAndListen: 15926 Insufficient free space for journals, terminating
    Mon Aug 12 17:02:59.159 dbexit: 
    Mon Aug 12 17:02:59.159 [initandlisten] shutdown: going to close listening sockets...

いくつかのスペースを解放するためにいくつかのクリーニングを行った後、それは魅力のように機能しました!

于 2013-08-12T15:24:58.443 に答える
2

私は同じ問題に直面しました。bin(mongodbがインストールされている場所)内でmongodを実行すると、うまくいきました。私もスペースが足りませんでした。

于 2013-08-19T12:47:50.373 に答える
0

$PATH とアクセス許可の問題の組み合わせである可能性があります。

以下の手順を試してください。

$PATH 変数を更新して、MongoDB bin ファイルを指すようにします。私の場合、このフォルダーに MongoDB を brew install します。

/usr/local/Cellar/mongodb/2.4.6/

$PATH 変数を更新するには、次の手順を実行します。

$ sudo vi /etc/paths

次に、'i' を押して Vi にテキストを挿入し、MongoDB パスを 'paths' ファイルの末尾に追加して、ターミナルを再起動します。

/usr/local/Cellar/mongodb/2.4.6/bin

「Esc : w q」を使用して保存し、Vi エディターを終了します。

echo を使用してパス変数を表示します。

$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/Cellar/mongodb/2.4.6/bin

Mongo のバージョンをチェックしてみてください。

$ mongo --version
MongoDB shell version: 2.4.6

次に、データベース ディレクトリを作成する必要があります。MongoDB ドキュメントで提案されているデフォルトの「/data/db」の場所を使用しました。また、Mongo がログを作成しようとする際のアクセス許可の問題を回避するために、ログ ディレクトリも作成しました。所有権を変更すると、それで問題は解決します。

$ sudo mkdir /data/db
$ sudo mkdir /data/log
$ whoami
username
$ chown -R username /data

ここで、「mongod」コマンドを初めて実行するときに提供される MongoDB のデフォルトの構成ファイルを作成します。ここで、「mongod」がサービスを開始し、着信データ接続をリッスンすることも指摘したいと思います。これは、'$service mysqld start' を実行した場合と似ています。先に進み、構成ファイルを作成しましょう。非常に基本的な構成ファイルを作成したことに注意してください。ただし、他にも多くの変数を追加して MongoDB を構成できます。MongoDB で遊ぶのはこれが初めてなので、MongoDB のドキュメントを読んだだけでよくわかります!「mongodb.conf」を作成しました。

$ sudo vi /etc/mongodb.conf

以下を追加します。

fork = true
port = 27017
quiet = true
dbpath = /data/db
logpath = /data/log/mongod.log
logappend = true
journal = true

MongoDB サーバーのデフォルト ポートは 27017 であることに注意してください。手順 5 で作成した dbpath と logpath には独自のパスを使用します。conf ファイルを閉じて保存することを忘れないでください。

これで、MongoDB サービスを開始する準備が整いました。ターミナルの 2 つのインスタンスを開きます。ターミナル 1 で、次のように入力します。

$ sudo mongod -f /etc/mongodb.conf
about to fork child process, waiting until server is ready for connections.
forked process: 3516
all output going to: /data/log/mongod.log
child process started successfully, parent exiting

上記のメッセージが表示された場合は、Mongod サービスが正常に開始されたことがわかります。

接続するには、ターミナル 2 で次のように入力します。

$mongo test
MongoDB shell version: 2.4.6
connecting to: test
Server has startup warnings:
Tue Sep 3 16:55:43.527 [initandlisten]
Tue Sep 3 16:55:43.527 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
>

警告は無視してください。ただし、'test' データベースに正常に接続されています。涼しい!

それで全部です。MacにMongoDBのコピーを初めてインストールしようとしたときに、このソリューションを適用しました。これがあなたにも役立つかどうかを確認してください。

詳細な投稿については、 http://arcanebytes.com/2013/09/03/mongodb-installation-on-mac-os-x/#comment-1036112094 にアクセスしてください

それが役立つことを願っています!

乾杯、チンメイ

于 2014-02-09T05:33:10.163 に答える