web-dev-qa-db-ja.com

mongod --dbpathの設定方法

一般的にmongodbとデータベースにとって非常に新しい。 mongoを実行すると、次のエラーメッセージが表示されます:

MongoDB Shell version: 2.4.9
connecting to: test
Thu Jan 30 13:03:33.170 Error: couldn't connect to server 127.0.0.1:27017 
at src/mongo/Shell/mongo.js:145
exception: connect failed

実行中mongod私はこれを見ます:

Thu Jan 30 13:13:36.588 [initandlisten] MongoDB starting : pid=29408 port=27017 dbpath=/usr/local/var/mongodb 64-bit Host=Kimis-MacBook-Air-2.local
Thu Jan 30 13:13:36.588 [initandlisten] 
Thu Jan 30 13:13:36.588 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
Thu Jan 30 13:13:36.588 [initandlisten] db version v2.4.9
Thu Jan 30 13:13:36.588 [initandlisten] git version: nogitversion
Thu Jan 30 13:13:36.588 [initandlisten] build info: Darwin minilionvm.local 11.4.2 Darwin Kernel Version 11.4.2: Thu Aug 23 16:25:48 PDT 2012; root:xnu-1699.32.7~1/RELEASE_X86_64 x86_64 BOOST_LIB_VERSION=1_49
Thu Jan 30 13:13:36.588 [initandlisten] allocator: tcmalloc
Thu Jan 30 13:13:36.588 [initandlisten] options: { bind_ip: "127.0.0.1", config: "/usr/local/etc/mongod.conf", dbpath: "/usr/local/var/mongodb" }
Thu Jan 30 13:13:36.591 [initandlisten] journal dir=/usr/local/var/mongodb/journal
Thu Jan 30 13:13:36.591 [initandlisten] recover begin
Thu Jan 30 13:13:36.591 [initandlisten] recover lsn: 108155770
Thu Jan 30 13:13:36.591 [initandlisten] recover /usr/local/var/mongodb/journal/j._0
Thu Jan 30 13:13:36.591 [initandlisten] journal file version number mismatch got:4147 expected:4149. if you have just upgraded, recover with old version of mongod, terminate cleanly, then upgrade.
Thu Jan 30 13:13:36.592 [initandlisten] dbexception during recovery: 13536 journal version number mismatch 16711
Thu Jan 30 13:13:36.592 [initandlisten] exception in initAndListen: 13536 journal version number mismatch 16711, terminating
Thu Jan 30 13:13:36.592 dbexit: 
Thu Jan 30 13:13:36.592 [initandlisten] shutdown: going to close listening sockets...
Thu Jan 30 13:13:36.592 [initandlisten] shutdown: going to flush diaglog...
Thu Jan 30 13:13:36.592 [initandlisten] shutdown: going to close sockets...
Thu Jan 30 13:13:36.592 [initandlisten] shutdown: waiting for fs preallocator...
Thu Jan 30 13:13:36.592 [initandlisten] shutdown: lock for final commit...
Thu Jan 30 13:13:36.592 [initandlisten] shutdown: final commit...
Thu Jan 30 13:13:36.592 [initandlisten] shutdown: closing all files...
Thu Jan 30 13:13:36.592 [initandlisten] closeAllFiles() finished
Thu Jan 30 13:13:36.592 [initandlisten] shutdown: removing fs lock...
Thu Jan 30 13:13:36.592 dbexit: really exiting now

mongo dpathを手動でmongod --dbpath /data/db(インストール時のデフォルト)に設定し、ターミナルで実行し続けると、すべて正常に実行されます。しかし、一度閉じると、すべてが再び壊れます。私の質問は:

  1. dbpathが/usr/local/var/mongodbに設定されているのはなぜですか?
  2. このエラーを修正して、mongoがマシンで動作するようにするにはどうすればよいですか?

私は永続的にdbpathを/data/dbに設定するか、dbpathで/usr/local/var/mongodbとして動作するように何かを再設定する必要があると仮定しています

unixコマンドもかなり新しいので、このエラーを修正する方法が完全にはわかりません。

提案をありがとう!

そう、私はこれを読んでmongodbドキュメントを掘り下げます:

「指定しない限り、mongodはデフォルトの/data/dbディレクトリでデータファイルを検索します(Windowsシステムは\ data\dbディレクトリを使用します。)パッケージ管理システムを使用してインストールした場合。提供される/etc/mongodb.confファイルを確認しますパッケージごとにdbpathの構成を確認します。」

/etc/内のファイルを見てみると、mongodb.confファイルはありません...しかし、/usr/local/etc/mongod.conf...が表示されるので、これを正しく理解したら、 /etc/mongodb.confというファイルを作成し、dbpathを/data/dbに設定します。

/usr/local/内のコンテンツも削除する必要がありますか?

私はこれが私のPATHの設定方法と関係があると思います...誰かが私にこの問題を持たないようにunixでこれを修正する方法を説明できますか?

再度、感謝します!

19
vesperae

最初に/etc/mongodb.confに設定ファイルがあります。したがって、これはより標準化されたパスを使用する自作インストールのように聞こえます。 /data/db/全体は、多くの手動インストールで参照されます ドキュメント

したがって、基本的にはログからサーバーは実行されておらず、シャットダウンしているため、シェルが接続するものは何もありません。不整合の原因となったいくつかのクリーンなシャットダウン/再起動があったようです。

構成のジャーナル/usr/local/var/mongodb/journal/のファイルをクリアします。

また:

Sudo rm /var/lib/mongodb/mongod.lock

念のため、その部分がきれいに見えても。そして再起動します。

11
Neil Lunn

Macでのみこれを試しました:

  • アプリのルートフォルダーにデータディレクトリを作成する
  • インストール時にmongoディレクトリを配置した場所にcdします
  • 次のコマンドを実行します:

    mongod --dbpath〜/ path/to/your/app/data

あなたは行ってもいいはずです!

14
Sacha Nacar

Mongodb.confファイルでdbPathを設定できます。

storage:
    dbPath: "/path/to/your/database/data/db"

これはYAMLベースの設定ファイル形式(Mongodb 2.6バージョン以降)であるため、スペースのみのタブはなく、「:」の後のスペースに注意してください

通常、このファイルは次の* nixシステムにあります:/etc/mongodb.conf

それで、ただ実行する

$ mongod -f /etc/mongodb.conf

そしてmongodプロセスが開始されます...

(Windowsでは次のようになります)

> C:\MongoDB\bin\mongod.exe -f C:\MongoDB\mongod.conf
10
Andrey

私にとっては:

mongod --dbpath=/whatever/data/path
6
Gareth Thomas
mongod  --port portnumber --dbpath /path_to_your_folder

デフォルトでは、ポート番号は27017で、パスは/ var/lib/mongodbです

すべてのデータベースを保持する独自のポート番号とパスを設定できます。

2
aaditya

また、起動時にmongodを実行するように構成して、起動時に自動的に実行され、構成時にdbpathが設定されるようにすることもできます。これを行うには:

mongod --smallfiles --config /etc/mongod.conf

--smallfilesタグは、サイズにエラーがある場合に備えています。もちろん、オプションです。これにより、mongodbのセットアップを自動化しながら問題を解決できるはずです。

1
ABarb
Sudo mongod --dbpath ~/data

これは私のために働いた。

0
phifa

ホームにディレクトリdbを作成し、db内に別のディレクトリデータを作成します

cd 
mkdir db
cd db
mkdir data

次に、このコマンドを入力します-

mongod --dbpath ~/db/data
0
user8797752

シナリオ:MongoDB(バージョンv4.0.9)。

  1. カスタムフォルダー(名前:myCustomDatabases)、データベースの保存場所を設定します。
  2. カスタムフォルダー(名前:myCustomDatabases)で、データベースの作成(名前:newDb)にする必要があります。

解決:

  1. 作成カスタムフォルダー(名前:myCustomDatabases):

    D:>md myCustomDatabases
    
  2. --monpath --dbpathをcustom folder(名前:myCustomDatabases)へのパスで実行します:

    mongod --dbpath "D:\myCustomDatabases"
    
  3. another 'cmd'から 'mongo'を実行します:

    D:>mongo
    

    3.1。 カスタムフォルダー(名前:myCustomDatabases)に保存されているすべてのデータベースを表示します。

    >show dbs
    admin   0.000GB
    config  0.000GB
    local   0.000GB
    

    3.2。 newDbという名前のデータベースを使用します:

    > use newDb
    switched to db newDb
    

    3.3。 カスタムフォルダー(名前:myCustomDatabases)に保存されているすべてのデータベースを表示します。

    >show dbs
    admin   0.000GB
    config  0.000GB
    local   0.000GB
    

    !!! Noticed、そのnewDb[〜#〜] not [〜#〜]リストにあります!!!

    3.4。データベースを作成するドキュメントを持つコレクションを作成する必要がありますnewDb

    > db.Cats.insert({name: 'Leo'})
    WriteResult({ "nInserted" : 1 })
    

    insert({name: 'Leo'})操作では、データベースnewDBおよびコレクションCatsが作成されます。これらは存在しないためです。

    3.5。これで、新しく作成されたデータベースnewDbがリストに表示されます。

    > show dbs
    admin   0.000GB
    config  0.000GB
    local   0.000GB
    newDb   0.000GB
    

    3.6。これで、カスタムフォルダーD:\ myCustomDatabasesに、データベースnewDbがあります。

0
Ted

非常にシンプル:

Sudo chown mongodb:mongodb /var/lib/mongodb/mongod.lock 
0
Mezlini