mongoDBがデータを格納している場所を確認するにはどうすればよいですか?(デフォルトの/ data / dbにはありません!)


160

私のホストにはmongodbインスタンスが付属していて、/ dbディレクトリがないので、データが実際に格納されている場所を見つけるために何ができるか疑問に思っています。


7
これに関するより最近の質問があります。「mongodbのデフォルトのデータベースパスは何ですか?」。データパスは、デフォルトの/data/db(設定ファイルが使用されていない場合)か、またはで検出できますdb.adminCommand("getCmdLineOpts").parsed.dbpath
Stennie、2014年

6
OSX、mongo 3.0.4では、 "db.adminCommand(" getCmdLineOpts ")。parsed.storage.dbPath"を使用する必要がありました
ski_squaw 2015

-あなたのコメントをあなたの目的のターゲットではない、しかし、あなたの質問リンクポイントこの質問では(私はRobomongoを使用しているように、Windows上でよ)私を助け@Stennie stackoverflow.com/a/12738557/112764 -とに3.x、それは実際にdb.adminCommand("getCmdLineOpts").parsed.storage.dbpath
NateJ

5
@NateJありがとう!関連する質問回答には、MongoDB 2.6以降の例と、2.4以下の古い形式の例があります。adminデータベースへの変更を覚えたり、adminCommand:(db.serverCmdLineOpts().parsed.storage.dbPathMongoDB 2.6+)を使用したりする代わりに使用できるシェルヘルパーもあります。
Stennie、2016年

回答:


140

mongodデータベースの場所のデフォルトは/data/db/です。

あなたが実行している場合はps -xa | grep mongod、あなたが表示されない--dbpath、明示的に指示したmongodデシベルの場所のためにそのパラメータを見て、あなたが持っていないdbpathあなたにはmongodb.conf、デフォルトの場所は次のようになります。/data/db/そして、あなたはそこになります。


11
そのようなディレクトリはない
user2384994

18
@ user2384994私の場所は/etc/mongod.conf
K-SOの毒性が高まっています。

1
パスを見ませんでしたが、/usr/bin/mongod -f /etc/mongod.conf。構成からdbpatchを取得しました。
Putnik

6
/usr/local/etc/mongod.conf(構成ファイル)と/usr/local/var/mongodb(データベースの場所)も確認してください。一部のシステムでは、これらがデフォルトになります。
Miles Erickson、2016

さて、この1は、すべてのMongoDBバージョンのために正確に現在のパスを印刷する必要がありますstackoverflow.com/a/52036070/248616
ナム・G VU

57

あなたの設定ファイルは何を言っていますか?

$ grep dbpath /etc/mongodb.conf

それが正しくない場合は、これを試してください。データベースファイルがリストに表示されます。

$ sudo lsof -p `ps aux | grep mongodb | head -n1 | tr -s ' ' | cut -d' ' -f 2` | grep REG

それはです/var/lib/mongodb/*私のデフォルトのインストール(Ubuntuの11.04)に。

便宜上PIDを/var/lib/mongodb/mongod.lock保持するファイルもあることに注意してくださいmongod。ただし、データディレクトリにあります。


このサーバーには/ var / libディレクトリがなく、これらの2つのコマンドは機能しません(最初のコマンドは/etc/mongodb.confを見つけることができません2番目のコマンドは認識されないlsofです)
Zugwalt

多分あなたはあなたのホストの情報を追加する必要があります。ディストリビューションのようなUbuntuではないようです。
DrColossos 2011

4
Ubuntu 16.04 mongodb v3.4.10では、それは$ grep dbPath /etc/mongod.conf
ihsan

31

mongodb v2.6.4の新しいバージョンでは、次のことを試してください。

grep dbpath /etc/mongod.conf

それはあなたにこのようなものを与えます:

dbpath=/var/lib/mongodb

そして、そこにデータが保存されます。


私もここにいました。ファイルサイズを確認するためにこのディレクトリを検索したいdu -sh * | sort -hr

25

私が見つけdb.serverCmdLineOpts()、あなたがサーバーに接続できるかどうか実際のパスを見つけるための最も強力な方法を。「parsed.storage.dbPath」には、サーバーが現在使用しているパスが含まれており、configまたはコマンドライン引数から取得した場合に使用できます。

また、私の場合、構成値が実際の値を反映していることを確認することが重要でした(つまり、最後の再起動後に構成が変更されなかった)これは、ここで提供されているソリューションでは保証されません。

db.serverCmdLineOpts()

出力例:

{
    "argv" : [ 
        // --
    ],
    "parsed" : {
        "config" : "/your-config",
        "storage" : {
            "dbPath" : "/your/actual/db/path",
            // --
        }
    },
    "ok" : 1.0
}

3
これがここでの最良の答えです
オーバーステア

私にとってもベストアンサー
Nam G VU

21

この質問は、MongoのLinux / Unixインスタンスを対象としていますが、使用されているオペレーティングシステムに関係なく、最初の検索結果の1つです。

MongoDBがデフォルトの方法でWindowsサービスとして設定されている場合は、通常、MongoDBサービスのプロパティの「実行可能ファイルへのパス」エントリを確認することで見つけることができます。

「実行可能ファイルへのパス」オプションを示すプロパティウィンドウ


それほど明白ではありませんが、質問は* nix os
st78 '19

3
@ st78私は知っていますが、Windowsで場所を検索したときの最初のGoogle検索結果の1つであるため、私がWindowsのパスに対処するために(私がそれを理解したら)答えを見つけたのは、私のような人々に出くわした理由です。
Robotnik 2017年

15

私の経験から、デフォルトの場所は/var/lib/mongodb私が行った後です

sudo apt-get install -y mongodb-org

1
Linux Mint 17.3ユーザーの場合、これを確認できます。
Matheus Dal'Pizzol

8

私はOSXシステム/ usr / local / var / mongodbで私のものを見つけました


3
これはHomebrewユーザーに当てはまります
マシュー

1
問題は、mongodbのデータストレージの場所を「どうすれば見つけられるか」です。特定のユーザーまたはプラットフォームへのパスだけではありません。
Yu Chen

4

Windowsの場合MongoDB \ Server \ 4.0 \ binフォルダーに移動し、mongod.cfgファイルをテキストエディターで開きます。次に、dbPathパラメータを指定する行を見つけます。線は似ています

dbPath:D:\ Program Files \ MongoDB \ Server \ 4.0 \ data


2

でざっと目を通すだけで見つかりました/var/db。助けてくれてありがとう-これらの答えは他のシステム(Ubuntuなど)にも当てはまり、他のシステムにも役立つと思います!


2

どういうわけかmongod.logを見つけてそれをgrepすることができれば

grep dbpath mongod.log

dbpathの値は、mongodbのデータの場所です!! ではごきげんよう :)


2

実際、mongodインスタンスがデータを保存するデフォルトのディレクトリは

/data/db LinuxおよびOS Xでは、

\data\db Windowsの場合

あなたがいる場合、パッケージ管理システムを使用してMongoDBのをインストールし、確認してください/etc/mongod.conf提供するファイルを、ディレクトリが指定されていることを確認します。

このstorage.dbPath設定は、でのみ使用できますmongod

Linuxパッケージのinitスクリプトはstorage.dbPath、デフォルトからの変更を予期していません。Linuxパッケージを使用して変更storage.dbPathする場合は、独自のinitスクリプトを使用して、組み込みスクリプトを無効にする必要があります。


1

起動すると表示されます。しかし、それがホストでできることかどうかはわかりません。コマンドラインにアクセスでき、サービスを再起動できる場合、次のような結果が得られます。

    2016-11-15T12:57:09.182-0500 I CONTROL  [initandlisten]
 MongoDB starting : pid=16448 port=27017 dbpath=C:\data\db\ 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.