一般的に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
(インストール時のデフォルト)に設定し、ターミナルで実行し続けると、すべて正常に実行されます。しかし、一度閉じると、すべてが再び壊れます。私の質問は:
/usr/local/var/mongodb
に設定されているのはなぜですか?私は永続的に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でこれを修正する方法を説明できますか?
再度、感謝します!
最初に/etc/mongodb.conf
に設定ファイルがあります。したがって、これはより標準化されたパスを使用する自作インストールのように聞こえます。 /data/db/
全体は、多くの手動インストールで参照されます ドキュメント 。
したがって、基本的にはログからサーバーは実行されておらず、シャットダウンしているため、シェルが接続するものは何もありません。不整合の原因となったいくつかのクリーンなシャットダウン/再起動があったようです。
構成のジャーナル/usr/local/var/mongodb/journal/
のファイルをクリアします。
また:
Sudo rm /var/lib/mongodb/mongod.lock
念のため、その部分がきれいに見えても。そして再起動します。
Macでのみこれを試しました:
次のコマンドを実行します:
mongod --dbpath〜/ path/to/your/app/data
あなたは行ってもいいはずです!
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
私にとっては:
mongod --dbpath=/whatever/data/path
mongod --port portnumber --dbpath /path_to_your_folder
デフォルトでは、ポート番号は27017で、パスは/ var/lib/mongodbです
すべてのデータベースを保持する独自のポート番号とパスを設定できます。
また、起動時にmongodを実行するように構成して、起動時に自動的に実行され、構成時にdbpathが設定されるようにすることもできます。これを行うには:
mongod --smallfiles --config /etc/mongod.conf
--smallfiles
タグは、サイズにエラーがある場合に備えています。もちろん、オプションです。これにより、mongodbのセットアップを自動化しながら問題を解決できるはずです。
Sudo mongod --dbpath ~/data
これは私のために働いた。
ホームにディレクトリdbを作成し、db内に別のディレクトリデータを作成します
cd
mkdir db
cd db
mkdir data
次に、このコマンドを入力します-
mongod --dbpath ~/db/data
シナリオ:MongoDB(バージョンv4.0.9)。
解決:
作成カスタムフォルダー(名前:myCustomDatabases):
D:>md myCustomDatabases
--monpath --dbpathをcustom folder(名前:myCustomDatabases)へのパスで実行します:
mongod --dbpath "D:\myCustomDatabases"
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があります。
非常にシンプル:
Sudo chown mongodb:mongodb /var/lib/mongodb/mongod.lock