MongodbのDB変更

mongodbでのdbpathを変更するのに少し手間取ったのでメモ。

 

mongod --dbpath=/User/homu/Libraly/mongodb/db &

とすると、

listen(): bind() failed errno:98 Address already in use for socket: 0.0.0.0:27017 

 こんなエラーがでて、変更できない。

すでにdbが動いているので変更できないと怒られているみたい。

なので、mongodbを一度止める

$ ./mongo
use admin
db.shutdownServer() 

これで止まるので、もう一度動かす

mongod --dbpath=/User/homu/Libraly/mongodb/db &

 

これで切り替え成功。

 

追記

ここでエラーがでた場合、lockがかかっていて修復する必要がある。

その場合はMongoDBの公式の方に書かれているのでそちらを参考にするとよい

http://docs.mongodb.org/manual/tutorial/recover-data-following-unexpected-shutdown/

 

ざっと引用

1.ロックしてるファイルを削除する

rm /data/db/mongod.lock

2.DBを修復する

mongod --dbpath /data/db --repair

3.再起動する

mongod --dbpath /data/db