web-dev-qa-db-ja.com

MongoDBが機能していません。 「エラー:dbpath(/ data / db)は存在しません。」

ターミナルで「mongod」を実行しようとすると、次のエラーが表示されます。マシンのアンインストール、再インストール、再起動を試みました。動作させる方法についての提案は驚くべきものです。

エラー:

dbpath (/data/db) does not exist.
 Create this directory or give existing directory in --dbpath.
 See http://dochub.mongodb.org/core/startingandstoppingmongo

サイドノート:Nodeは、このエラーが発生したのとほぼ同時に私のマシンで動作しなくなりました。

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: failed to connect to [localhost:27017]

どんな助けも大歓迎です!

64
user3810163

これにより、ディレクトリが適切な場所に設定され、Mongoが検索できるようになります。

Sudo mkdir -p /data/db/

Sudo chown `id -u` /data/db

181
lpappone

ルート/ data/dbにディレクトリを作成するか、次のコマンドで他のパスを設定する必要があります。

mongod --dbpath /srv/mongodb/

リンク例を参照

14
Muhammad Ali

私は問題を解決しました:

Sudo mongod --dbpath=/var/lib/mongodb、次にmongoを使用してmongodbシェルにアクセスします。

6
gabrielhws

新しいデータディレクトリのユーザーを変更します。

chown mongodb [rute_directory]

そして、もう一度mongoサービスを開始してみてください

サービスモンゴッドスタート

これで同じ問題を解決します。

2
Raugaral

デーモン(通常はdで終わる)は通常、サービスとして開始されます。サービス(デーモン)を開始すると、mongodbが設計どおりに動作するようになります(ディストリビューションとうまく統合されている場合、許可を変更することなく)。 mongodを直接起動するのではなく、mongodbという名前のサービスを使用して起動します。起動時にsystemd enableを使用してdistroで実行し、次のように実行します。

Sudo systemctl enable mongodb    
Sudo systemctl start mongodb

または、ディストリビューションでupstart(/ etc/initがある場合)またはinit(/etc/init.dがある場合)( https://www.tecmint.com/systemd-replaces-init-in -linux / )代わりに実行:

Sudo service mongodb enable
Sudo service mongodb start

Gentoo(/etc/init.dの設定)( https://forums.gentoo.org/viewtopic-t-854138-start-0 .html )実行:

rc-update add mongodb default 
/etc/init.d/mongodb start 

まだrcを持っているFreeBSDのディストリビューション/バージョン(バージョンがsystemdに切り替わったかどうかを確認してください。それ以外の場合は以下を参照してください):

  • /etc/rc.confに次の行を追加します。

    mongod_enable = "YES"

  • その後:

    Sudo service mongod start

サービスを開始した後、特権のないユーザーはmongoを使用でき、各ユーザーは個別のデータを持ちます。

1
poikilos