MongoDB に接続できません。 Ubuntuでは動作しますが、私は CentOS で動作しています。これはエラーメッセージです。
MongoDBシェルバージョン:2.4.2
接続先:テスト
Sat Apr 20 07:22:09.390 JavaScriptの実行に失敗しました:エラー:サーバー127.0.0.1:27017のsrc/mongo/Shell/mongo.js:L112に接続できませんでした
exception:接続に失敗しました
mongod.lock
ファイルを削除しようとしましたが、機能しません。
/var/lib/mongodb/mongod.lockを削除して、mongdoサービスを再起動してください
Sudo rm /var/lib/mongodb/mongod.lock
Sudo service mongodb restart
Ubuntuを実行している場合、フォルダーの所有権に問題があります。
次のコマンドを実行します。
MongoDBサービスを停止します
Sudo service mongodb stop
MongoDBロックファイルを削除する
Sudo rm /var/lib/mongodb/mongod.lock
所有権をルートからMongoDBパスに変更します
Sudo chown -R mongodb:mongodb /var/lib/mongodb/
MongoDBサービスを開始する
Sudo service mongodb start
Mongoアプリケーションをテストする
mongo
その後、正常に実行できるようになります(願っています)。
この方法は、元のファイルを保存せずにデータファイルを修復する場合にのみ機能します。 dbpathが存在する場所を見つけるには、次を使用します
vim /etc/mongodb.conf
オプションの確認dbpath=
。
(私が持っています dbpath=/var/lib/mongodb
。)
デフォルト: /data/db/
一般的な場所には、/srv/mongodb
、/var/lib/mongodb
または/opt/mongodb
。
/ var/lib/mongodbをdbpathに置き換えます
Sudo rm /var/lib/mongodb/mongod.lock
Sudo mongod --dbpath /var/lib/mongodb/ --repair
Sudo mongod --dbpath /var/lib/mongodb/ --journal
(上記の行を実行した端末を実行したままにしてください。押さないでください。 Ctrl + C または、終了します。)コマンドを入力して、別のウィンドウでmongo
を開始します。
これがお役に立てば幸いです!元のファイルを保存したままデータファイルを修復する場合は、 mongo
recover を参照してください。
過去にも同じ問題がありました。私の場合、ジャーナルファイル用に十分な空き領域がありませんでした。一部のスペースを解放することで問題は解決しました。
私は同じ問題に直面しました。 bin(mongodbがインストールされている場所)内でmongodを実行するとうまくいきました。また、スペースが不足していました。
@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...
いくつかのスペースを解放するためのクリーニングの後、それは魅力のように機能しました!
$ PATHと権限の問題の組み合わせである可能性があります。
以下の手順に従ってください:
MongoDB binファイルを指すように$ PATH変数を更新します。私の場合、MongoDBをこのフォルダーにbrewインストールします:
/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
ここで、MongoDBのデフォルト設定ファイルを作成して、「mongod」コマンドを初めて実行するときに提供します。ここで、「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
>
警告は無視しますが、「テスト」データベースに正常に接続されています!涼しい!
それで全部です。 Macに初めてMongoDBのコピーをインストールしようとしたときに、このソリューションを適用しました。これもあなたに役立つかどうかを確認してください。
詳細な投稿については、こちらをご覧ください- http://arcanebytes.com/2013/09/03/mongodb-installation-on-mac-os-x/#comment-1036112094 .
私はそれが役立つことを願っています!
乾杯、チンメイ
/etc/mongo.confでmongoDBのデフォルトポートを変更した場合にも、このエラーが発生します。
この場合、シェルを介して接続するには、次を使用します:
$mongo 127.0.0.1:your_new_port_number
OR
$mongo -u <user> -p <pass> --Host <Host> --port your_new_port_number
from MongoDB docs