-- 摘录: MongoDB 非正常关闭后修复记录
mongod 没有后台执行, 在终端连接非正常断开后, 再次执行 mongod 报错, 如下所示:
- 2015-03-09T20:39:20.172+0800
- 2015-03-09T20:39:20.172+0800 warning: 32-bit servers dont have journaling enabled by default. Please use --journal if you want durability.
- 2015-03-09T20:39:20.172+0800
- about to fork child process, waiting until server is ready for connections.
- forked process: 14229
- ERROR: child process failed, exited with error number 100
修复方法:
这算是一个 Mongod 启动的一个常见错误, 非法关闭的时候, lock 文件没有干掉, 第二次启动的时候检查到有 lock 文件的时候, 就报这个错误了
解决方法: 进入 mongod 上一次启动的时候指定的 data 目录 --dbpath=/data/mongodb
删除掉该文件:
- rm /data/mongodb/mongo.lock --linux
- del /data/mongodb/mongo.lock --windows
再执行:
./mongod --repair
启动:
/usr/local/mongodb$ /usr/local/mongodb/mongod -dbpath=/data/mongodb --fork --port 27017 --logpath=/usr/local/mongodb/log/work.log --logappend --auth
OK, 问题解决
正确关闭 mongod 的方法: 进入 mongo shell
- use admin
- db.shutdownServer()
也可以按照文档粗暴的杀掉它, 它内部应该有 KILL 信号处理程序
killall mongod
请不要 kill -9 , 会造成文件数据混乱丢失 repair 也无力回天
ctrl+c 可以退出 mongo 的界面 或是 ext
来源: http://www.bubuko.com/infodetail-2503790.html