回答:
簡単に言え--dbpath
ば、MongoDB のパラメーターを使用すると、MongoDBがデータの読み取りと書き込みを行うディレクトリを制御できます。
mongod --dbpath / usr / local / mongodb-data
mongodbを起動し、ファイルをに配置します/usr/local/mongodb-data
。
ディストリビューションとMongoDBのインストールに応じて、mongod.conf
これを自動的に行うようにファイルを構成することもできます。
# Store data in /usr/local/var/mongodb instead of the default /data/db
dbpath = /usr/local/var/mongodb
公式の10gen Linuxパッケージ(Ubuntu / DebianまたはCentOS / Fedora)には、に配置される基本構成ファイルが同梱されて/etc/mongodb.conf
おり、MongoDBサービスは起動時にこれを読み取ります。ここで変更を加えることができます。
/etc/mongodb.conf
このソリューションごとに更新しました。そして、起動後mongod
、それ/data/db
が使われているのを見ました。mongodb.confを更新しても、mongodがdbを格納する場所に影響しなかったのはなぜですか?使用していること(注--dbpath
引数が働いていた。
/etc/mongodb.conf
、アップデートが正常に機能しています。
chown
、サービス開始スクリプト用のmongodユーザーに提供する必要があります。
2分のダウンタイムでそれを解決しました:)
フォルダを移動し、symlinkを追加して、権限を調整します。
sudo service mongod stop
sudo mv mongodb /new/disk/mongodb/
sudo ln -s /new/disk/mongodb/ /var/lib/mongodb
sudo chown mongodb:mongodb /new/disk/mongodb/
sudo service mongod start
# test if mongodb user can access new location:
sudo -u mongodb -s cd /new/disk/mongodb/
# resolve other permissions issues if necessary
sudo usermod -a -G <newdisk_grp> mongodb
chmod -R o+x /<home>
。参照: stackoverflow.com/a/38193187/205049
Permission denied: "/var/lib/mongodb"
。このことは、どのようような/home/../mongodb/mongodb/ルックス: drwxrwxr-x 3 mongodb mongodb 4096 oct 13 09:32 ../ drwxr-xr-x 2 mongodb nogroup 4096 oct 13 09:29 journal/ -rw------x 1 mongodb nogroup 67108864 sep 23 14:44 local.0* -rw------x 1 mongodb nogroup 16777216 sep 23 14:44 local.ns* -rwxr-xr-x 1 mongodb mongodb 0 oct 13 09:29 mongod.lock*
mv
コマンドを実行するときに、どのフォルダーにいるのかを明確にする必要があります。lib内からmvコマンドを実行すると、mongodb to ln
to
デフォルトのパスを変更する場合は、次のコマンドを使用できます。これをmongodbのbinディレクトリに入力するだけです。
mongod --dbpath=yourdirectory\data\db
既存のデータも移動したい場合は、コマンドを実行する前に、既存のdata \ dbディレクトリから新しいディレクトリにすべてのフォルダーをコピーしてください。
また、実行中の既存のmongodbサービスも停止します。
MongoDBフォルダーにmongod.cfgというファイルがない場合は作成します。私の場合:C:\ Users \ ivanbtrujillo \ MongoDB
次に、メモ帳でmongod.cfgを編集し、次の行を追加します(カスタムdbpath)。
dbpath=C:\Users\ivanbtrujillo\MongoDB\data\db
このファイルでは、ログパスも指定する必要があります。私のmongod.cfgファイルは:
logpath=C:\Users\ivanbtrujillo\MongoDB\log\mongo.log
dbpath=C:\Users\ivanbtrujillo\MongoDB\data\db
WindowsサービスとしてmongoDBを使用する場合は、このキーを変更して、mongod.cfgファイルを指定する必要があります。
mongodbをWindowsサービスとしてインストールするには、次のコマンドを実行します。
**"C:\Users\ivanbtrujillo\MongoDB\bin\mongod.exe" --config "C:\Users\ivanbtrujillo\MongoDB\mongod.cfg" –install**
regedit.exeを開き、次のルートに移動します。
HKEYLOCALMACHINE\SYSTEM\CurrentControlSet\services\MongoDB
MongoDBサービスは機能しません。ImagePathキーを編集し、そのコンテンツを削除して、以下を配置する必要があります。
**"C:\Users\ivanbtrujillo\MongoDB\bin\mongod.exe" --config "C:\Users\ivanbtrujillo\MongoDB\mongod.cfg"
--logpath="C:\Users\ivanbtrujillo\MongoDB\log\mongo.log" –service**
設定ファイルとそのログパスをmongoに示す。
その後、mongodbサービスを初期化すると機能します。
これは、WindowsにmongoDBをインストールするための完全なチュートリアルです。http://ivanbtrujillo.herokuapp.com/2014/07/24/installing-mongodb-as-a-service-windows/
それが役に立てば幸い、
の内容を/var/lib/mongodb
にコピーし/data/db
ます。探しているファイルの名前は your_db_name.ns
でyour_dbname.n
、n
は0から始まる番号です。の下/var/lib/mongodb
にそのようなファイルが見つからない場合は、ファイルシステムで検索してください。
コピーしたら--dbpath=/data/db
、mongod
コマンドを使用してMongoDBを起動するときに使用します。
これが私がしたことです、それが他の誰にも役立つことを願っています:
手順:
/etc/rc.d/rc.mongod stop
を使用すること systemdなどの他の何かを使用する場合は、その方法をドキュメントで確認する必要がありますmkdir /mnt/database
chown mongodb:mongodb -R /mnt/database/mongodb
)からの読み取り/書き込み権限を持っていることを確認してください -@DanailGabenskiに感謝します。cp -R /var/lib/mongodb/ /mnt/database/
rm -rf /var/lib/mongodb/
ln -s /mnt/database/mongodb /var/lib/mongodb
/etc/rc.d/rc.mongod start
mongo
を行います(データベースに接続して、すべてが正常かどうかを確認します)これを行う場合は特に注意が必要であると伝える必要はありませんが、rm -rf
これが最善の方法だと思います。
mongodの実行中にデータベースdirをコピーしようとしないでください。データベースのコンテンツを変更するサービスから読み取りまたは読み取りを行うサービスが存在する可能性があるためです。
chown mongodb:mongodb -R /mnt/database/mongodb
debian / ubuntuでは、/ etc / init.d / mongodbスクリプトを編集する必要があります。本当に、このファイルは/etc/mongodb.confから設定をプルしているはずですが、デフォルトのディレクトリをプルしていないようです(おそらくバグ)。
これは少しハックですが、これらをスクリプトに追加すると正しく起動します。
追加:
DBDIR=/database/mongodb
変化する:
DAEMON_OPTS=${DAEMON_OPTS:-"--unixSocketPrefix=$RUNDIR --config $CONF run"}
に:
DAEMON_OPTS=${DAEMON_OPTS:-"--unixSocketPrefix=$RUNDIR --dbpath $DBDIR --config $CONF run"}
sudo chmod o+rx /media
たとえば、マウントポイントがの場合media
。r + xは、「その他」のグループとユーザーが最初のマウントポイントから使用できるようにする必要があります。