转自——
没有无缘无故的荣耀-------赵兴壮 come on
之前MongoDB启动的时候是正常的,不知道后来启动报错了,就把粘贴出来查询了。最后才知道是由于自己不正常的关闭导致的这个情况。
--摘录:MongoDB非正常关闭后修复记录
mongod没有后台执行,在终端连接非正常断开后,再次执行mongod报错,如下所示:
1
2
3
4
5
6
|
2015-03-09T20:39:20.172+0800 2015-03-09T20:39:20.172+0800 warning: 32-bit servers don't 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
再执行:
1
|
./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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步